所有的配置文件,都在C:\oshmi\conf路径下
; Define a Modbus slave IED
[RTU_1]
IP=127.0.0.1
PORT=502
; delay after each interrogation (in milliseconds)
DELAY=100
; read holding registers (FC=0x03) 1 = mb_address, number of registers, OSHMI_address of 1st
; Analog 16bit values are converted to float and divided by 32767.0 (1FFFh -> 1.0),
; so use kconv1=32767.0 in point_list.txt to restore the value as decimal from modbus
; or scale the values as needed using kconv1(multiplier) and kconv2(offset).
READHR_1=0 2 3
; read input status (FC=0x02) 1 = mb_address, number of bits, OSHMI_address of 1st
READIS_1=0 2 1
配置modbus子站端的ip和端口,采集周期等;采集两个模拟量值和两个开关量值。
"READHR_1=0 2 3"意思是从地址为0的寄存器开始采集,顺序寄存器个数为2,采集后的值赋给起始点表序号为3的点。
“READIS_1=0 2 1”同理。结合下边的点表信息来看会更清晰。
可用点表配置工具oshmi_config_manager.xlsm,进行设置,excel+vb脚本实现。可是安装后的此工具不能执行脚本,我进行了脚本重连并完善,有需要的朋友可以向我索取。
配置了两个模拟量和两个开关量,如下
POINT_NUMB | ADDR | ID | TYP | MESSAGE | ALM | EQ | INF | OR | UN | RTU | ASDU | KCONV1 | KCONV2 | SUPCMD | DC | PR | INIVAL | Substation | Bay | Description |
1 | 0 | DigitalPoint1 | D | ON/OFF | 0 | 0 | 0 | 0 | - | 0 | 0 | -1.0000 | 0.0000 | 0 | 0 | 0 | 0.0000 | Subst | Bay | DigitalPoint1 |
2 | 0 | DigitalPoint2 | D | ON/OFF | 0 | 0 | 0 | 0 | - | 0 | 0 | -1.0000 | 0.0000 | 0 | 0 | 0 | 0.0000 | Subst | Bay | DigitalPoint2 |
3 | 0 | AnalogPoint3 | A | Unit | 0 | 0 | 0 | 0 | - | 0 | 0 | 32767.0000 | 0.0000 | 0 | 0 | 0 | 0.0000 | Subst | Bay | AnalogPoint3 |
4 | 0 | AnalogPoint4 | A | Unit | 0 | 0 | 0 | 0 | - | 0 | 0 | 32767.0000 | 0.0000 | 0 | 0 | 0 | 0.0000 | Subst | Bay | AnalogPoint4 |
关于参数KCONV1和KCONV2的配置,请参看modbus_queue.ini文件中的说明。
我用的是modsim32仿服务端工具,新建两个窗口分别模拟量和开关量,如下
设备地址一定要填255,因为modbus采集程序下发的召唤报文,地址默认的是255。
设备完毕后,从菜单Connection中找到Modbus/Tcp Svr,启动连接服务就行。
此时手动启动webserver.exe程序,就可以看到数值已经采上来了
不过一定要先确定modbus采集程序正常启动并运行,它会随webserver.exe一块启动的,如下
数据已经采集上来了,接下来就是要在画面上呈现。
打开inkscape.exe工具,新建文件,如下
在Get属性页的Tag项,填入点表中的点名或点序号都可以。完成后保存为test.svg文件到C:\oshmi\svg,编写此目录下的screen_list.js文件,添加如下内容
\
确保modbus和webservice正常运行,启动支持html5的浏览器,网址输入http://127.0.0.1:51909/,进入首页,打开"Srceen Viewer",在顶部的下拉菜单中选择test页,如下
有志于WebScada学习和开发的朋友,可联系 QQ号:9167326,QQ群:867962452