/// <summary>
        /// Write Data To PLC
        /// </summary>
        /// <param name="Data"></param>
        /// <param name="dataList"></param>
        /// <returns>Error Code</returns>
        public override int WriteData(TransferMsg Data, List <TagMessagePLC> dataList)
        {
            int returncode = -1;

            foreach (TagMessagePLC taginfo in dataList)
            {
                if (taginfo.IsBit)
                {
                    returncode = WriteBitVal(taginfo.Offset, taginfo.Size, taginfo.RawData, taginfo.DeviceName);
                }
                else
                {
                    returncode = WriteWordVal(taginfo.Offset, taginfo.Size, taginfo.RawData, taginfo.DeviceName);
                }

                if (returncode == 0)
                {
                    DMLogMessage _DM = new DMLogMessage(new List <TagMessagePLC> {
                        taginfo
                    }.ToArray(), Data, nameof(MCProtocol))
                    {
                        Direct = emDirect.H2E
                    };
                    _DMLog.Info(_DM);
                }
                else
                {
                    string[]   arValueHex = Enumerable.Range(0, taginfo.RawData.Length).Select(x => taginfo.RawData[x].ToString("X4")).ToArray();
                    LogMessage LM         = new LogMessage(Data, nameof(MCProtocol))
                    {
                        EqpID = Data.EqpID, Direct = emDirect.H2E
                    };
                    LM.Message = $"Write Data Error! code:0x{returncode.ToString("X")} Device={taginfo.DeviceName },Size={taginfo.Size},DeviceValue={string.Join(" ", arValueHex)}";
                    _Logger.Error(LM);
                }
            }

            return(returncode);
        }
示例#2
0
 public override long SetData(TransferMsg Msg)
 {
     throw new NotImplementedException();
 }