四、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_NUMBADDRIDTYPMESSAGEALMEQINFORUNRTUASDUKCONV1KCONV2SUPCMDDCPRINIVALSubstationBayDescription
10DigitalPoint1DON/OFF0000-00-1.00000.00000000.0000SubstBayDigitalPoint1
20DigitalPoint2DON/OFF0000-00-1.00000.00000000.0000SubstBayDigitalPoint2
30AnalogPoint3AUnit0000-0032767.00000.00000000.0000SubstBayAnalogPoint3
40AnalogPoint4AUnit0000-0032767.00000.00000000.0000SubstBayAnalogPoint4

关于参数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页,如下

七、后记 

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

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


 

  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 6
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值