版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

...

《Modbus驱动配置》目的是本地的ModBusRTU和ModBusTCP能够读写通过ModBus服务端的数据

modbus驱动根据协议不同,分为两个驱动,请根据实际情况配置:

  • modbusRTU,用于通过窗口通信
  • modbusTCP,用于通过网口通信

1. ModSim和ModScan使用

ModSim是ModBus模拟器,用来模拟ModBus中的寄存器数值,可以通过ModScan读取到该寄存器值。

...

系统驱动中需要包含ModBusRTU和ModBusTCP这两个驱动,并在t_device_driver中配置好驱动,注意id为主键,不可重复

驱动名称根据协议不同,请选择:modbustcp或者modbusrtu

3. 设备配置

...

  • 通信连接配置
    • modbustcp驱动
      • 连接方式(conntype)请选择tcpclient方式
      • 连接参数:
        • 设备IP输入设备的实际IP
        • 设备端口 (port)一般是502,除非特别指定
      • 示例:添加设备,连接方式选择tcpclient,驱动ID为t_device_driver中配置的驱动的id,设备id为主键,连接参数格式为ip=xx.xx.xx.xx;port=xx

...

参数1:站号或从级地址

参数2:无或者0表示按正常指令;1表示多寄存器指令

参数3:每个数据块自动组块时的最大字节数。缺省为230个字节。例外情况包括:

...

    • modbusrtu驱动
      • 连接方式, 请选择serial串口方式
      • 连接参数:
        • 对于网关,有4个串口,串口名称分别需要输入:/ttyO1,/ttyO2,/ttyO32,/ttyO4,具体见:串口通讯参数配置
        • 对于windows,串口为:COM1,COM2,COM3,COM4,以此类推。可通过设备管理器查看应该配置哪个串口
        • 对于Linux,串口根据情况而定
        • 配置串口波特率、奇偶校验位等


  • 设备参数配置
  • 设备参数1:站号或从级地址,通常用于modbusrtu以区分不同设备。如果设备未说明,可不输入
  • 设备参数2:无或者0表示按正常指令;1表示多寄存器指令。通常不需要填写
  • 设备参数3:每个数据块自动组块时的最大字节数。缺省为230个字节。通常不需要填写
    • 例外情况包括:北辰模块有时候,只能取98个寄存器(196个字节),此时如果读取不到就需要调整这个值
  • 配置的数据库示例:
    • Image Modified

4. 变量配置

在表t_device_tag中配置点名。点名格式为:数据类型tag中配置点名。

  • 点名格式为:数据类型:地址

...

  • 数据块类型:AI、AO、DI、DO
  • 地址从1开始,如AI:

...

  • 1表示ai类型地址为1的寄存器的值。
  • 如果需要寄存器的一个位,则用AI:1.0

Image Modified


三、 测试

  • modsim工具是一个可以模拟真实设备的程序。
    • 打开ModSim,选择数据类型为Holding Registers, 对应数据库中的AO类型的点
  • 启动bin\start_pkmemdb.bat,
  • 启动bin\pknodeserver.exe,将点写入内存数据库中
  • 启动bin\pktagmonitor.exe,用于检测点值
  • 修改40001的点值,观察exe的值得变化

Image Modified

四、 功能码请求类型

读取寄存器功能码:

读取AI(输入寄存器):3

...