//Function-5 写1路开关量输出 private byte[] createRespondMessage_5() { var respondMessage = _messageReceived; var startAddress = (_messageReceived[2] << 8) | _messageReceived[3]; startAddress = startAddress - 2048; var keyStatus = (_messageReceived[4] << 8) | _messageReceived[5]; if (keyStatus == 0) { string CellNAme = "M" + (startAddress); _xmlM.Modify(CellNAme, "0"); } else { string CellNAme = "M" + (startAddress); _xmlM.Modify(CellNAme, "1"); } return(respondMessage); }
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// private int fnCMPAndCompute(string[] pCOMMAND, cla_stPLCcs.stPLC_OBJ[] pPLC_OBJ, ref int piStackDepth) { var iCmpIndex1 = GetNumberKDTC(pCOMMAND[1]); var iCmpIndex2 = GetNumberKDTC(pCOMMAND[2]); var iObjIndex = GetNumber(pCOMMAND[3]); switch (pCOMMAND[3][0]) { case 'Y': if (pPLC_OBJ[piStackDepth - 1].status) { thePLCCore.pOutPut[iObjIndex].status = false; } break; case 'M': ClaXmlM xmlM = new ClaXmlM(); xmlM.Modify(pCOMMAND[3], "0"); xmlM.Modify(pCOMMAND[3][0] + (iObjIndex + 1).ToString(CultureInfo.InvariantCulture), "0"); xmlM.Modify(pCOMMAND[3][0] + (iObjIndex + 2).ToString(CultureInfo.InvariantCulture), "0"); if (iCmpIndex1 == iCmpIndex2) { xmlM.Modify(pCOMMAND[3][0] + (iObjIndex + 1).ToString(CultureInfo.InvariantCulture), "1"); } else if (iCmpIndex1 > iCmpIndex2) { xmlM.Modify(pCOMMAND[3], "1"); } else if (iCmpIndex1 < iCmpIndex2) { xmlM.Modify(pCOMMAND[3][0] + (iObjIndex + 2).ToString(CultureInfo.InvariantCulture), "1"); } break; case 'S': if (pPLC_OBJ[piStackDepth - 1].status) { thePLCCore.pSTATUS[iObjIndex].status = false; } break; default: return(-1); } return(0); }