diff --git a/SCADA/Program/.vs/DataExchange/v15/.suo b/SCADA/Program/.vs/DataExchange/v15/.suo index 2830303..1e2ae86 100644 Binary files a/SCADA/Program/.vs/DataExchange/v15/.suo and b/SCADA/Program/.vs/DataExchange/v15/.suo differ diff --git a/SCADA/Program/.vs/DataExchange/v15/sqlite3/storage.ide b/SCADA/Program/.vs/DataExchange/v15/sqlite3/storage.ide index d89ef11..ff217fd 100644 Binary files a/SCADA/Program/.vs/DataExchange/v15/sqlite3/storage.ide and b/SCADA/Program/.vs/DataExchange/v15/sqlite3/storage.ide differ diff --git a/SCADA/Program/ModbusDriver/ModbusRTUDriver.cs b/SCADA/Program/ModbusDriver/ModbusRTUDriver.cs index 7c3cab3..20ada9a 100644 --- a/SCADA/Program/ModbusDriver/ModbusRTUDriver.cs +++ b/SCADA/Program/ModbusDriver/ModbusRTUDriver.cs @@ -157,7 +157,7 @@ namespace ModbusDriver get { return 0x100; } } - public DeviceAddress GetDeviceAddress(string address) + public DeviceAddress GetDeviceAddress(string address)//PLC地址一般为5位 如40001,也有可能为40001.1 首位代表地址类型 { DeviceAddress dv = DeviceAddress.Empty; if (string.IsNullOrEmpty(address)) @@ -166,7 +166,7 @@ namespace ModbusDriver { case '0': { - dv.Area = Modbus.fctReadCoil;//读线圈或离散量输出状态 00001 - 09999:数字量输出( 线圈) + dv.Area = Modbus.fctReadCoil;//功能码:01 读线圈或离散量输出状态 00001 - 09999:数字量输出( 线圈) int st; int.TryParse(address, out st); dv.Bit = (byte)(st % 16); @@ -176,7 +176,7 @@ namespace ModbusDriver break; case '1': { - dv.Area = Modbus.fctReadDiscreteInputs;//读离散量输入 10001 - 19999:数字量输入(触点) + dv.Area = Modbus.fctReadDiscreteInputs;//功能码:02 读离散量输入 10001 - 19999:数字量输入(触点) int st; int.TryParse(address.Substring(1), out st); dv.Bit = (byte)(st % 16); @@ -188,7 +188,7 @@ namespace ModbusDriver case '4': { int index = address.IndexOf('.'); - dv.Area = Modbus.fctReadHoldingRegister;//读取保持寄存器 40001 - 49999:数据保持寄存器 + dv.Area = Modbus.fctReadHoldingRegister;//功能码:03 读取保持寄存器 40001 - 49999:数据保持寄存器 if (index > 0) { dv.Start = int.Parse(address.Substring(1, index - 1)); @@ -196,13 +196,13 @@ namespace ModbusDriver } else dv.Start = int.Parse(address.Substring(1)); - dv.Start--; + dv.Start--; //PLC的寄存器地址比modbus协议的通讯地址大1 如:40002 对应寻 址地址 0x0001 } break; case '3': { int index = address.IndexOf('.'); - dv.Area = Modbus.fctReadInputRegister;//读输入寄存器 30001 - 39999:输入数据寄存器(通常为模拟量输入) + dv.Area = Modbus.fctReadInputRegister;//功能码:04读输入寄存器 30001 - 39999:输入数据寄存器(通常为模拟量输入) if (index > 0) { dv.Start = int.Parse(address.Substring(1, index - 1)); @@ -210,7 +210,7 @@ namespace ModbusDriver } else dv.Start = int.Parse(address.Substring(1)); - dv.Start--; + dv.Start--; //PLC的寄存器地址比modbus协议的通讯地址大1 如:40002 对应寻 址地址 0x0001 } break; }