コード例 #1
0
        /// <summary>
        /// this can be used as a heart beat tracker as the plc will poll the ctrl room every ~100 ms
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Server_Read_handler(object sender, ModbusSlaveRequestEventArgs e)
        {
            PLC_last_contact = DateTimeOffset.UtcNow.ToUnixTimeMilliseconds();
            // Console.WriteLine(e.Message);
            return;

            Regex           rx      = new Regex(@"\b(?:Read )([0-9]+)(?:.+)(?:address )([0-9]+)\b", RegexOptions.Compiled | RegexOptions.IgnoreCase);
            MatchCollection matches = rx.Matches(e.Message.ToString());

            foreach (Match match in matches)
            {
                GroupCollection groups = match.Groups;
                Console.WriteLine("'{0}' repeated at positions {1} and {2}", groups["word"].Value, groups[0].Index, groups[1].Index);
            }
            // PLC_Modbusserver.DataStore.HoldingRegisters[e.] += 1;
            //throw new NotImplementedException();
        }
コード例 #2
0
        private void requestReceiveHandler(object sender, ModbusSlaveRequestEventArgs e)//收到请求
        {
            IModbusMessage message     = e.Message;
            string         writeLogStr = _name + ": " + message;

            if (message.FunctionCode == 6)//6是写单个寄存器
            {
                Program._logForm.addWriteLog(writeLogStr);
                return;
            }
            else if (message.FunctionCode == 16)//16是写多个模拟量寄存器
            {
                Program._logForm.addWriteLog(writeLogStr);
                return;
            }
            string logStr = _name + " Receive Request:" + message;

            Program._logForm.addLog(logStr);
        }
コード例 #3
0
 /// <summary>
 /// 当从机收到数据请求时候发生
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void Modbus_Serial_ModbusSlaveRequestReceived(object sender, ModbusSlaveRequestEventArgs e)
 {
     this.SimulatorAppendLog("服务器请求从机获取数据 ");
 }
コード例 #4
0
 /// <summary>
 /// 当从机收到写入命令的时候发生
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void Modbus_Serial_WriteComplete(object sender, ModbusSlaveRequestEventArgs e)
 {
     this.SimulatorAppendLog("服务器请求从机要求写入数据");
 }
コード例 #5
0
ファイル: HostedMB.cs プロジェクト: dalyIsaac/MMS
 /// <summary>
 /// Writes to the log when a request for data is received
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private static void HostedSlave1_Request_Event(object sender, ModbusSlaveRequestEventArgs e)
 {
     File.AppendAllText(LogFileNames[0], WriteLine());
 }