public static string ReadACAreaLabel(IOpcClient client, LCodeSignal signal) { const int MAX_LEN = 6; var r1 = client.TryReadString(signal.LCode1); var r2 = client.TryReadString(signal.LCode2); return(r1.PadLeft(MAX_LEN, '0') + r2.PadLeft(MAX_LEN, '0')); }
/// <summary> /// 读取完整标签号码。 /// </summary> /// <param name="slot"></param> /// <param name="client"></param> /// <returns></returns> public static string ReadCompleteLable(IOpcClient client, LCodeSignal slot) { const int MAX_LEN = 6; var lable1 = client.TryReadString(slot.LCode1); var lable2 = client.TryReadString(slot.LCode2); return(lable1.PadLeft(MAX_LEN, '0') + lable2.PadLeft(MAX_LEN, '0')); }
/// <summary> /// slot is param.RobotCarryA or param.RobotCarryB /// </summary> /// <param name="slot"></param> /// <param name="jobname">"A" or "B"</param> private static void startJobTask(LCodeSignal slot, string jobname) { isrun = true; while (isrun) { // 两个任务共用一个client,故要加锁。 lock (client) { if (client.TryReadBool(slot.Signal)) { // 加入机器人布卷队列。 var code1 = client.TryReadString(slot.LCode1); var code2 = client.TryReadString(slot.LCode2); var fullcode = LableCode.MakeCode(code1, code2); pushInQueue(fullcode, jobname); client.TryWrite(slot.Signal, false); } } Thread.Sleep(5000); } }
public static void WriteACAreaCompletionSignal(IOpcClient client, LCodeSignal signal) { client.TryWrite(signal.Signal, 0); }