所有的配置文件,都在C:\oshmi\conf路径下
一、hmi.ini的配置
- RUN节
- PROTOCOL_DRIVER="modbus.exe",这样modbus程序就可以随webserver.exe一块启动;
- HIDE=0,webserver.exe启动后不隐藏,可在此窗口查看实时值等;
- SIMULATION=0,关闭自动模拟;
- 浏览器的窗口定位如下,一般不变
- EVENTS_VIEWER="c:\oshmi\browser\chrome.exe --user-data-dir=c:\oshmi\browser-data --bopt --app=http://127.0.0.1:51909/htdocs/events.html"
TABULAR_VIEWER="c:\oshmi\browser\chrome.exe --user-data-dir=c:\oshmi\browser-data --bopt --app=http://127.0.0.1:51909/htdocs/tabular.html"
SCREEN_VIEWER="c:\oshmi\browser\chrome.exe --user-data-dir=c:\oshmi\browser-data --bopt --app=http://127.0.0.1:51909/htdocs/screen.html"
TREND_VIEWER="c:\oshmi\browser\chrome.exe --user-data-dir=c:\oshmi\browser-data --bopt --app=http://127.0.0.1:51909/htdocs/trend.html"
CURVES_VIEWER="c:\oshmi\browser\chrome.exe --user-data-dir=c:\oshmi\browser-data --bopt --app=http://127.0.0.1:51909/htdocs/histwebview/histwebview.php"
DOCS_VIEWER="c:\oshmi\browser\chrome.exe --user-data-dir=c:\oshmi\browser-data --bopt --app=http://127.0.0.1:51909/htdocs/listdocs.php"
LOGS_VIEWER="c:\oshmi\browser\chrome.exe --user-data-dir=c:\oshmi\browser-data --bopt --app=http://127.0.0.1:51909/htdocs/listlogs.php"
- REDUNDANCY 节,主备冗余,不配置;
- BDTR节,104的采集配置信息,IP_BDTR1="",一定要为空;
- WEBSERVER节,DOUBLE_TRANSITION_ALARM=1,允许报警
- HIST节,不配置;
- JSON节,不配置
二、modbus_queue.ini的配置
; 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”同理。结合下边的点表信息来看会更清晰。
三、point_list.txt点表的配置
可用点表配置工具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文件中的说明。
四、Modbus子站模拟
我用的是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文件,添加如下内容
<optgroup label='test'>\
<option value='../svg/test.svg' >test...........[7]{M}</option>\
</optgroup>\
六、最终效果
确保modbus和webservice正常运行,启动支持html5的浏览器,网址输入http://127.0.0.1:51909/,进入首页,打开"Srceen Viewer",在顶部的下拉菜单中选择test页,如下
七、后记
- 细心的朋友可能会发现用Inkscape制作画面绑点时,点表检索按钮打不开,这需要加入SAGE的源码并重新编译,在下篇博文中会讲述详细编译过程;
- 还有遥控,博主还没尝试成功如何配置和执行,后续博文中会有更新;
- 以上内容只是讲述OSHMI如何使用,这不是我的初衷。我的最终目标是对现有OSHMI进行集成和深入优化,使其产品化,更适应国人对工控软件的使用规范。
有志于WebScada学习和开发的朋友,可联系 QQ号:9167326,QQ群:867962452