...
modbus驱动根据协议不同,分为两个驱动,请根据实际情况配置:
- modbusRTU,用于通过窗口通信modbusRTU,用于通过串口通信
- modbusTCP,用于通过网口通信
1. ModSim和ModScan使用
...
访问:127.0.0.1/config
用户名:admin 密码:admin
3. 设备配置
- 通信连接配置
- modbustcp驱动
- 连接方式(conntype)请选择tcpclient方式
- 连接参数:
- 设备IP输入设备的实际IP
- 设备端口 (port)一般是502,除非特别指定
- 示例:添加设备,连接方式选择tcpclient,驱动ID为t_device_driver中配置的驱动的id,设备id为主键,连接参数格式为ip=xx.xx.xx.xx;port=xx
- modbusrtu驱动
- 连接方式, 请选择serial串口方式
- 连接参数:
- 对于网关,有4个串口,串口名称分别需要输入:/dev/ttyO1,/dev/ttyO2,/dev/ttyO3,/dev/ttyO4, 具体见:串口通讯参数配置
- 对于windows,串口为:COM1,COM2,COM3,COM4,以此类推。可通过设备管理器查看应该配置哪个串口
- 对于Linux,串口根据情况而定
- 配置串口波特率、奇偶校验位等
- modbustcp驱动
...
- 设备参数配置
- 设备参数1:站号或从级地址,通常用于modbusrtu以区分不同设备。如果设备未说明,可不输入如果设备未说明,可不输入,此时缺省值为:1
- 注意,站号在设备可以设置,在变量地址也可以指定!变量地址中指定的优先级高于设备中指定的优先级。
- 指定方法:X#TYPE:nnnn,如5#AO:1001,表示5号子站的AO:1001地址
- 设备参数2:无或者0表示按正常指令;1表示多寄存器指令。通常不需要填写
- 设备参数3:每个数据块自动组块时的最大字节数。缺省为230个字节。通常不需要填写
- 例外情况包括:北辰模块有时候,只能取98个寄存器(196个字节),此时如果读取不到就需要调整这个值
- 页面配置方式如下:
- 点击保存按钮即可 下方数据库配置,自行忽略
- modbustcp,通过网络方式配置的数据库示例:
- modbusrtu,网关中配置示例,网关第一个串口为/dev/ttyO1:
- modbusrtu,windows中配置示例,windows第一个串口为COM1:
4. 变量配置
在表t_device_tag中配置点名。tag中配置点名。格式:[站号#]数据块类型:块内偏移[.位]
- 点名格式为:[站号#]数据块类型:块内偏移[.位]
- 数据块类型:AI、AO、DI、DO。其中AI、AO为字寄存器,每个表示2个字节;DI、DO为位寄存器,每个表示1个位(bit)。
- 站号#,表示指定站号,如果没有则取设备参数中配置的站号
- .位,表示取第N位
- 点名格式为:数据类型:地址
- 数据块类型:AI、AO、DI、DO
- 地址从1开始,如AI:1表示ai类型地址为1的寄存器的值。
- 如果需要寄存器的一个位,则用AI:1.0
- 常用示例:
- AO:1001,AO类型的第1001个字寄存器
- AO:1001.15,AO类型的第1001个字寄存器的第15位(0....15位)
- DO:1001,DO类型的第1001个位寄存器
- 2#AO:1001,2号子站AO类型的第1001个字寄存器
- 2#AO:1001.15,2号子站AO类型的第1001个字寄存器的第15位(0....15位)
- 2#DO:1001, 2号子站DO类型的第1001个位寄存器
三、 测试
- modsim工具是一个可以模拟真实设备的程序。程序下载地址:ftp://ftp.peakinfo.cn/software/modbus/ 该程序不需要安装,双击即可:
- 打开ModSim,选择数据类型为Holding Registers, 对应数据库中的AO类型的点
- 如果上面启动eview-server时,点击的是bin/pkservermgr.exe,该步骤不用做:
- 启动bin\start_pkmemdb.bat,
- 启动bin\pknodeserver.exe,将点写入内存数据库中
- 启动bin\pktagmonitor.exe,用于检测点值
- 修改40001的点值,观察exe的值得变化
...