Browse Source

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

pull/9/head
yangjingzhao123 8 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; }
}
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;
}

Loading…
Cancel
Save