技术论坛

 Node-Red与S71200通信

返回主题列表
作者 主题
davelyu
侠士

经验值: 1589
发帖数: 162
精华帖: 3
楼主    2020-09-08 11:47:30
主题:Node-Red与S71200通信 精华帖 

实现的功能

这次通信的对象换成了1200的CPU,想要实现的功能如下


  • 显示Sin波形数据

  • 显示数据及曲线

  • 控制数据的初始化



S7-1200生成正弦波

这个可以使用Simense公司针对1200和1500系列PLC专门提供的函数库 LGF 

链接可以参考这里

Library of general functions (LGF)

这个函数库提供了许多好用的功能,其中包括生成各种波形数据,可以直接调用即可实现。sin曲线的Block如下


reset 上通过一个布尔量控制数据的初始化,即上图中的功能3


控制功能实现

Node-Red的使用就不在赘述了,可以参考上一篇文章,框图如下


对S7-1200PLC进行通信参数的配置,以及变量的设定

  • 读变量

  • 通过uiBuilder进行render

  • uiBuilder发出的msg通过function转换成布尔量的数组

  • 写变量M104.0

  • 写变量M104.1


写变量是通过 S7 Out 节点实现,此节点的输入可以是单独写入也可以通过数组批量写入,msg.payload中是需要写入的值,这里通过 function 节点处理从uiBuilder中输出的msg


当topic为不同的变量名时,即写入对应变量名的状态,其中msg.topic和msg.payload是uiBuilder中通过vue中的methods方法传出

Html代码中两个按钮上分别通过click事件关联vue中不同的methods,一个是 resetCurve1 ,另一个是 resetCurve2 两者除了需要控制的PLC内变量的名不同,其余完全相同


基本逻辑就是先获取M104.0的当前值,之后取其反,通过uibuilder的 send 方法打包成对象送出

这样就实现了页面操作按钮控制PLC变量状态改变

图表的实现

图表是使用highcharts的vue库,可以直接在uiBuilder中调用

Html代码中是通过vue组件的形式使用highcharts


其中option通过一个computed函数进行赋值,主要是曲线的一些参数

vue中的数据包括曲线的title,曲线类型和数据Serial,当然也可以增加更多的highcharts属性,可以参考链接

highcharts-vue

曲线数据的实时更新是在vue的mounted函数中进行的

通过push方法向数组中添加新数据,shift方法移除旧数据,可以通过限定数组的长度来实现曲线的显示宽度


个人微信公众号 "iLearning爱学习",头像就是公众号二维码
周杰伦
至圣

经验值: 13737
发帖数: 2031
精华帖: 16
1楼    2020-09-08 11:55:59
主题:回复:Node-Red与S71200通信

Node-Red部署在PC上还是IOT?

工控毁我青春!
davelyu
侠士

经验值: 1589
发帖数: 162
精华帖: 3
2楼    2020-09-08 12:08:56
主题:回复:Node-Red与S71200通信

我是部署在运行linux的单片机上

个人微信公众号 "iLearning爱学习",头像就是公众号二维码
Zaxife
至圣

经验值: 12573
发帖数: 2503
精华帖: 31
3楼    2020-09-08 15:32:28
主题:回复:Node-Red与S71200通信
Dashboard这个UI组件需要在线且能访问外网才能使用的,而且商用需要收费的,还有就是新版UI好看
但网页浏览器要最新版,旧版浏览器看不了。
所以,最终干脆直接用nodejs做webserver以及控制器通讯更自由,直接弃坑node-red。
yming
至圣

经验值: 126328
发帖数: 21935
精华帖: 822
4楼    2020-09-08 15:38:18
主题:回复:Node-Red与S71200通信

很不错。

问一下,Dashboard的横坐标是秒为单位么?


学而时习之,不亦说乎?温故而知新,不亦乐乎?
davelyu
侠士

经验值: 1589
发帖数: 162
精华帖: 3
5楼    2020-09-08 16:10:13
主题:回复:Node-Red与S71200通信

我好像忘记处理时间轴了,不过highcharts中时间轴的处理很方便,时间格式也很多

个人微信公众号 "iLearning爱学习",头像就是公众号二维码
davelyu
侠士

经验值: 1589
发帖数: 162
精华帖: 3
6楼    2020-09-08 16:36:36
主题:回复:Node-Red与S71200通信

这个就是本地访问的,没有连网,具体浏览器版本旧的确实不行,因为数据绑定是通过Vue实现的

个人微信公众号 "iLearning爱学习",头像就是公众号二维码
不断攀登
至圣

经验值: 12543
发帖数: 1843
精华帖: 0
7楼    2020-09-09 07:59:12
主题:回复:Node-Red与S71200通信

说的对,我记得以前还有一个专门的版块,估计没人看。

邮箱 yongquancun@126.com
黑猫警长W
至圣

经验值: 18278
发帖数: 2392
精华帖: 1
8楼    2020-09-09 14:04:28
主题:回复:Node-Red与S71200通信

这太高级了

天芯
至圣

经验值: 18638
发帖数: 2092
精华帖: 0
9楼    2020-09-09 15:05:18
主题:回复:Node-Red与S71200通信


跟着大神学习

wege97
侠圣

经验值: 2652
发帖数: 428
精华帖: 0
13楼    2020-09-12 19:42:19
主题:回复:Node-Red与S71200通信


 高级操作,想一下能用在那些地方

懒是人类前进的动力
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。