Snap7,Eel与S7-1200简单组态

已锁定

davelyu

  • 帖子

    162
  • 精华

    3
  • 被关注

    36

论坛等级:侠士

注册时间:2010-12-23

普通 普通 如何晋级?

Snap7,Eel与S7-1200简单组态

1769

5

2020-06-28 17:25:04

Snap7,Eel与S7-1200简单组态『1』

简介

Snap7是一个开源的,可以多平台运行的能与西门子S7系列PLC进行以太网通信的组件,之前的文章有两篇我介绍过这个组件,但是只是简单实现了对PLC的控制和数据读取,但是没有任何图形界面,只能通过命令行实现,这在实际应用中没有太大的意义,当然通过Python也可以实现图形界面,这里介绍一个比较好用的界面组件叫做Eel,说它好用,是因为它能通过前端语言JavaScript,Html,css实现多样的图形界面,前面两篇文章分别介绍过这个组件,今天我通过Snap7和Eel的结合,实现一个带有控制,曲线显示的简单组态界面


界面设计

这里界面是下载Bootstrap网站上现成的例子修改了一下,曲线功能是由Highchart实现

HighChart[1]

切换开关通过一个叫switchery的Js脚本实现

switchery[2]

启动后,点击右上角的连接按钮后会连接PLC,之后状态栏显示设备已经连接,之后表格处的数值会按1s的周期进行更新,曲线会自动更新,点击每个切换开关会触发PLC内开关量的动作。


重要代码分析

测量值显示

表格里面Value栏是PLC的数据实时更新过来的,所以此处的Html代码中需要为这一列指定一个相同的class,之后在js脚本中,可以将Python获得PLC数据打包成一个列表,之后循环的填充到表格中,可以看到td标签有个 real_value 的class,可以通过这个class将所有td标签迭代出来


切换开关是通过Input实现,指定不同的class,在脚本中对其进行数理化,即生成对应传感器的切换开关,可以看到 通过DOM选择temp_switch对应的单元格,之后使用Switchery实例化,即生成切换开关


表中中的数值是通过Python传递过来的列表迭代出来的,通过getElementsByClassName选择所有real_value的class,之后通过for语句循环对其内部内容赋值列表valueList


切换开关控制

切换开关的开和关状态改变可以对应一个函数,此函数内部判断切换开关的状态,然后对应不同的状态赋值给Python,Python获取该值后,进而控制PLC


tempToggle是Python传递过来的函数,js中可以对其赋值,之后Python中获取该值,进而控制PLC


victim.tempOn是类的方法,TempOn方法即通过Snap7控制对应的布尔量打开


曲线的生成

曲线功能是通过HighChart实现,实现静态的曲线很简单,HighChart采用固定的格式设置来定义曲线的样式,其中数据可以是一个列表,有时间和数据,HighChart可以自动将时间和数据按照设置正确的显示出来,数据我们可以通过js的push方法将Python传过来的PLC数据放进去。 通过新建一个values的数组,初始化数组里面的数据,这里我采用了moment的脚本来实现时间序列,y初始化了一个sin序列

momentjs[3]


初始化values数组后,可以通过动态更新里面的数据,x的值是时间,y的值是valueList列表中的第一个数值,即温度值,使用shift方法可以保证values的数组中始终是固定数量的数据


使用update方法将这个数据更新到HighChart中


按钮控制PLC连接

点击按钮后实现PLC的连接其实很简单,按钮按下后js代码会输出一个数值到Python中


Python使用这个数值判断是否实例化PLC,之后进行连接


引用链接

[1] HighChart: https://www.highcharts.com/
[2] switchery: https://abpetkov.github.io/switchery/
[3] momentjs: https://momentjs.com/
[4] 打通Python与JavaScript『2』: http://mp.weixin.qq.com/s?__biz=MzI4NDY1MjY4Nw==&mid=2247484406&idx=1&sn=a05424ca42f09a16cc9ac2e047eba7d8&chksm=ebf96616dc8eef00c6b3a37333749443ddadd655a66b53418cfb0f1dcbb8d3a71287ea6daff7#rd


Snap7,Eel与S7-1200简单组态 已锁定
编辑推荐: 关闭

请填写推广理由:

本版热门话题

SIMATIC S7-1200系列

共有13024条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

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