Browse Source

modbusRTU 增加部分注释、根据接口分类调整函数顺序1

pull/9/head
yangjingzhao123 9 years ago
parent
commit
ad29055eb2
  1. BIN
      SCADA/Program/.vs/DataExchange/v15/.suo
  2. BIN
      SCADA/Program/.vs/DataExchange/v15/sqlite3/storage.ide
  3. 14
      SCADA/Program/ModbusDriver/ModbusRTUDriver.cs

BIN
SCADA/Program/.vs/DataExchange/v15/.suo

Binary file not shown.

BIN
SCADA/Program/.vs/DataExchange/v15/sqlite3/storage.ide

Binary file not shown.

14
SCADA/Program/ModbusDriver/ModbusRTUDriver.cs

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

Loading…
Cancel
Save