四、WebScada-OSHMI的Modbus采集

所有的配置文件,都在C:\oshmi\conf路径下

一、hmi.ini的配置

  1.  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" 
  2. REDUNDANCY 节,主备冗余,不配置;
  3. BDTR节,104的采集配置信息,IP_BDTR1="",一定要为空;
  4. WEBSERVER节,DOUBLE_TRANSITION_ALARM=1,允许报警
  5. HIST节,不配置;
  6. 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仿服务端工具,新建两个窗口分别模拟量和开关量,如下

四、WebScada-OSHMI的Modbus采集_第1张图片

设备地址一定要填255,因为modbus采集程序下发的召唤报文,地址默认的是255。

设备完毕后,从菜单Connection中找到Modbus/Tcp Svr,启动连接服务就行。

此时手动启动webserver.exe程序,就可以看到数值已经采上来了

四、WebScada-OSHMI的Modbus采集_第2张图片

不过一定要先确定modbus采集程序正常启动并运行,它会随webserver.exe一块启动的,如下

四、WebScada-OSHMI的Modbus采集_第3张图片

五、画面制作

数据已经采集上来了,接下来就是要在画面上呈现。

打开inkscape.exe工具,新建文件,如下

四、WebScada-OSHMI的Modbus采集_第4张图片

在Get属性页的Tag项,填入点表中的点名或点序号都可以。完成后保存为test.svg文件到C:\oshmi\svg,编写此目录下的screen_list.js文件,添加如下内容

\
\
\

六、最终效果

确保modbus和webservice正常运行,启动支持html5的浏览器,网址输入http://127.0.0.1:51909/,进入首页,打开"Srceen Viewer",在顶部的下拉菜单中选择test页,如下

四、WebScada-OSHMI的Modbus采集_第5张图片

七、后记 

  1. 细心的朋友可能会发现用Inkscape制作画面绑点时,点表检索按钮打不开,这需要加入SAGE的源码并重新编译,在下篇博文中会讲述详细编译过程;
  2. 还有遥控,博主还没尝试成功如何配置和执行,后续博文中会有更新;
  3. 以上内容只是讲述OSHMI如何使用,这不是我的初衷。我的最终目标是对现有OSHMI进行集成和深入优化,使其产品化,更适应国人对工控软件的使用规范。

有志于WebScada学习和开发的朋友,可联系 QQ号:9167326,QQ群:867962452


 

你可能感兴趣的:(OSHMI)