技术论坛

基于CSS框架的S7-1200Web页面制作

作者 主题
侠士

经验值: 1589
发帖数: 162
精华帖: 3
主题:【分享】基于CSS框架的S7-1200Web页面制作
精华帖精华帖星级3级 推荐帖


只看楼主 只看精华 楼主 2019-11-08 23:58:50

基于CSS框架的S7-1200Web页面制作

S7-1200有个web页面发布的功能,这个功能好像很少有人提及它的使用,我也只是偶尔用来监控一下PLC变量,因为打开TIA14确实有点慢。

但是这个功能绝对不是什么鸡肋,因为它可以发布用户自定义的页面,而且页面可以加载javascript,这就使得它的功能跟火箭一样一飞冲天了,不过SIEMENS的官方文档也说了,最好不要靠这个功能来代替专业的HMI软件,毕竟它的实时性和安全性还是有待斟酌的。

但是在产品调试阶段还有测试阶段,这个功能确实很值得一用,因为它很方便实现也很容易让不懂PLC系统的测试人员无门槛上手,毕竟打开浏览器这个操作人人都会。

实现起来很简单,网上的英文文档也很多,介绍的很详细,所以这里就不详细说怎么实现了,只是说一说基于主流的CSS框架来使页面制作的更容易和更美观一些,还有就是在实际编写过程中遇到的一些问题

框架结构

在实际开始进行web功能编写前,需要先规划一下需要展示几个页面和页面的布局,这里介绍一个网站layoutit,这个完全可视化的网站可以进行拖放操作实现网页布局,布局后的html代码可以下载下来直接使用,使用的CSS框架是主流的bootstrap,可以说页面的美观程度完全不用操心,绝对主流,下面是我用它生成的一个网页结构,之后下载到PLC后,浏览器中打开的样子.


放入变量

网页结构完成后,就可以放入PLC的变量了,这里其实没什么特别要说的,变量是通过在整个html文件开头通过AWP进行所谓的声明,之后在网页中进行使用

从PLC进行读操作的变量通过

<!--AWP_Out_Variable Name='"此处填写变量名"'-->

从PLC进行写操作的变量通过

<!--AWP_In_Variable Name='"此处填写变量名"'-->

这里要注意引号的使用,如果是内存变量M,或者Q,I之类的输入输出变量,就是通过单引号外加双引号将它括起来,像这样

‘“此处填写变量名”‘

但是如果是DB块的变量,就需要像这样

‘“DataBloack名称”.变量名称’

实际的使用中,无非也就几种操作,

  • 网页端按下按钮控制PLC的变量
  • 在网页端显示PLC的某个变量
  • 网页端输入某个数字到PLC内某个变量

基本这三种操作就能实现大部分功能,其他的诸如枚举变量,数组显示我都很少用到,大家自己研究吧

网页端按下按钮控制PLC的变量

这个功能通过表单的POST方法实现

<form method="POST" action="" align="right">
  <input type="submit" value="开始测试" class="btn btn-primary btn-sm">
  <input type="hidden" name='"AI_TEST_Start_Stop"' value="1"></form>

第1,2,4行可以原封不动的敲进去,因为没有任何功能性的东西,都是一些显示和样式,只有第三行比较重要,其中name后面是PLC的变量名,value是给这个变量写入1,这个就实现了按下按钮,这个变量置1的操作,那怎么置0呢,把value改成0就行了。


在网页端显示PLC的某个变量

这个功能最简单,在需要显示变量的地方插入代码

<td class="font-weight-bold">:="200asModbusMaster_DB".ModbusMaster_6:</td>

两边尖括号的东西可以忽略,只要注意尖括号内部的代码就行,这是显示的是DB块变量,显示变量的时候可以不需要单引号,但是两端都要有冒号。


网页端输入某个数字到PLC内某个变量

这个和按下按钮控制变量的实现机制是一样的,只不过需要有个输入框

<form method="POST" action="">
  <input type="text" name='"1200asModbusSlave_DB".ModbusSlave_7'>
  <input type="submit" class="btn btn-success btn-sm" value="输入700"></form>

可以看到第2行type是text,这就是那个输入框,这里面的数值是赋给name的,name后面的变量就是PLC里面的变量,这里需要有单引号,第三行是通过一个按钮实现提交动作,也就是按下按钮后,1200asModbusSlave_DB”.ModbusSlave_7就写入你输入的那个值了


图形显示

再来说一种,有些时候希望一个Bool变量不是单纯的在网页端显示1或者0,而是能用图形来进行显示,这个也是可以实现的

<img src='Images/Lamp0:="TestFinished":.png' />

这个HTML代码正常的样子其实是这样的

<img src='Images/Lamp00.png' />或者<img src='Images/Lamp01.png' />


发现一些端倪了吧,其实就是用Bool变量来替换Lamp0x后面的这个x,0的时候就是Lamp00.png,1的时候就是Lamp01.png,这两张图片是这样的


最后是这个样子的

原文链接
百度网盘链接,提取码:xkoa


个人微信公众号 "iLearning爱学习",头像就是公众号二维码
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?a_id=1592831&b_id=50&s_id=0&num=25

奇侠

经验值: 8520
发帖数: 884
精华帖: 8
回复:基于CSS框架的S7-1200Web页面制作
推荐帖


只看楼主 只看精华 1楼 2019-11-09 07:09:04

有技术含量的精彩好帖!


个体职业者。
以下网友喜欢您的帖子:

  
侠圣

经验值: 3018
发帖数: 364
精华帖: 4
回复:基于CSS框架的S7-1200Web页面制作
推荐帖


只看楼主 只看精华 2楼 2019-11-09 07:09:44


访问Web服务器确实很方便,不过不怎么会编写HTML!


 
以下网友喜欢您的帖子:

  
奇侠

经验值: 9086
发帖数: 2334
精华帖: 30
回复:基于CSS框架的S7-1200Web页面制作
推荐帖


只看楼主 只看精华 3楼 2019-11-09 08:10:31

实时性太差 了,好几秒。默认不打开wed服务器的。需要自己手动打开。


学习ing!学习!
以下网友喜欢您的帖子:

  
至圣

经验值: 13749
发帖数: 2032
精华帖: 16
回复:基于CSS框架的S7-1200Web页面制作
推荐帖


只看楼主 只看精华 4楼 2019-11-09 09:03:29

西门子还是出一个web编辑器吧,拖拽把页面编辑好。


工控毁我青春!
以下网友喜欢您的帖子:

  
侠士

经验值: 1589
发帖数: 162
精华帖: 3
回复:基于CSS框架的S7-1200Web页面制作
推荐帖


只看楼主 只看精华 楼主 5楼 2019-11-09 09:11:39
以下是引用我家牛在2019-11-09 08:10:31的发言 >3楼

实时性太差 了,好几秒。默认不打开wed服务器的。需要自己手动打开。

使用Javascript脚本后,实时性真不错,我现场测试过,但是仅限于展示数据,用于实时控制还是算了吧


个人微信公众号 "iLearning爱学习",头像就是公众号二维码
以下网友喜欢您的帖子:

  
至圣

经验值: 12237
发帖数: 2431
精华帖: 86
回复:基于CSS框架的S7-1200Web页面制作
推荐帖


只看楼主 只看精华 6楼 2019-11-09 09:12:54

客户端不用装工业软件了,普通电脑带IE浏览器就能监控plc,有的场合还是比较适合的,比如MES,ERP场合,不用花费时间去做硬件驱动,能实现自动化工程与IT技术很好的融合。


 
以下网友喜欢您的帖子:

  
侠士

经验值: 1589
发帖数: 162
精华帖: 3
回复:基于CSS框架的S7-1200Web页面制作
推荐帖


只看楼主 只看精华 楼主 7楼 2019-11-09 09:15:47
以下是引用www123456在2019-11-09 09:12:54的发言 >6楼

客户端不用装工业软件了,普通电脑带IE浏览器就能监控plc,有的场合还是比较适合的,比如MES,ERP场合,不用花费时间去做硬件驱动,能实现自动化工程与IT技术很好的融合。

没错,我目前不要求实时性的现场就是这么干的


个人微信公众号 "iLearning爱学习",头像就是公众号二维码
以下网友喜欢您的帖子:

  
至圣

经验值: 12237
发帖数: 2431
精华帖: 86
回复:基于CSS框架的S7-1200Web页面制作
推荐帖


只看楼主 只看精华 8楼 2019-11-09 09:19:31
以下是引用plectrum在2019-11-09 09:15:47的发言 >7楼

没错,我目前不要求实时性的现场就是这么干的

以下是引用www123456在2019-11-09 09:12:54的发言 >6楼:客户端不用装工业软...

引用6楼详细内容:

客户端不用装工业软件了,普通电脑带IE浏览器就能监控plc,有的场合还是比较适合的,比如MES,ERP场合,不用花费时间去做硬件驱动,能实现自动化工程与IT技术很好的融合。

无线网络中,用手机,平板的浏览器也很方便采集现场数据。


 
以下网友喜欢您的帖子:

  
yzs
侠圣

经验值: 3553
发帖数: 441
精华帖: 7
回复:基于CSS框架的S7-1200Web页面制作
推荐帖


只看楼主 只看精华 9楼 2019-11-09 09:36:37

好帖要顶,学习了!部分图片看不到,不知道什么原因


 
以下网友喜欢您的帖子:

  
至圣

经验值: 127352
发帖数: 22001
精华帖: 824
回复:基于CSS框架的S7-1200Web页面制作
推荐帖


只看楼主 只看精华 10楼 2019-11-09 12:08:39

楼主探索1200WEB功能。赞一个!


不过,HTML、JavaScript、CSS只能显示“静态数据”的页面。对于PLC来说,网络负荷是很小的。

页面程序只是放在装载存储器中,用户(客户端)有连接时,调用;发送给客户端。(1200可是预留30个连接呢。)

用户客户端,就是浏览器,浏览器本质上是个可交互的“语句”执行器;它是逐条解释执行的。“语句”是非编译的,他人可见的。在http连接下,不是安全的。所以,工业环境,应该使用https的安全连接。


事实上,对于当今HTML5,客户端的每个页面,具有5M的空间。可以存储不少数据,用于一定时间段的“趋势”显示。只要你会写JS,就可以在浏览器上显示“历史”。


HTML、JavaScript、CSS框架写出来的页面,最大问题是数据刷新!

每次刷新,都要WEB服务器传送一遍整个页面!当刷新速度快时,页面是闪烁的。按钮是无法操作的。


所以,要想在后台交互数据,要学习使用JSON。


学而时习之,不亦说乎?温故而知新,不亦乐乎?
以下网友喜欢您的帖子:

  
至圣

经验值: 18920
发帖数: 2108
精华帖: 0
回复:基于CSS框架的S7-1200Web页面制作


只看楼主 只看精华 11楼 2019-11-09 12:34:18

嗯下载来学习开眼界


 
以下网友喜欢您的帖子:

  
侠士

经验值: 1589
发帖数: 162
精华帖: 3
回复:基于CSS框架的S7-1200Web页面制作
推荐帖


只看楼主 只看精华 楼主 12楼 2019-11-09 12:49:58
以下是引用yming在2019-11-09 12:08:39的发言 >10楼

楼主探索1200WEB功能。赞一个!


不过,HTML、JavaScript、CSS只能显示“静态数据”的页面。对于PLC来说,网络负荷是很小的。

页面程序只是放在装载存储器中,用户(客户端)有连接时,调用;发送给客户端。(1200可是预留30个连接呢。)

用户客户端,就是浏览器,浏览器本质上是个可交互的“语句”执行器;它是逐条解释执行的。“语句”是非编译的,他人可见的。在http连接下,不是安全的。所以,工业环境,应该使用https的安全连接。


事实上,对于当今HTML5,客户端的每个页面,具有5M的空间。可以存储不少数据,用于一定时间段的“趋势”显示。只要你会写JS,就可以在浏览器上显示“历史”。


HTML、JavaScript、CSS框架写出来的页面,最大问题是数据刷新!

每次刷新,都要WEB服务器传送一遍整个页面!当刷新速度快时,页面是闪烁的。按钮是无法操作的。


所以,要想在后台交互数据,要学习使用JSON。

调用JS的也正在写,写完发上来


个人微信公众号 "iLearning爱学习",头像就是公众号二维码
以下网友喜欢您的帖子:

  
至圣

经验值: 12543
发帖数: 1843
精华帖: 0
回复:基于CSS框架的S7-1200Web页面制作
推荐帖


只看楼主 只看精华 14楼 2019-11-11 08:40:39

不错 学习了。


邮箱 yongquancun@126.com
以下网友喜欢您的帖子:

  
至圣

经验值: 18294
发帖数: 2654
精华帖: 14
回复:基于CSS框架的S7-1200Web页面制作
推荐帖


只看楼主 只看精华 15楼 2019-11-11 14:59:54

不好意思,图片怎么全挂了


sometimes you have to be your own hero!
以下网友喜欢您的帖子:

  
至圣

经验值: 13075
发帖数: 1081
精华帖: 8
回复:基于CSS框架的S7-1200Web页面制作
推荐帖


只看楼主 只看精华 16楼 2019-11-11 15:30:52

图好像不能看了,怎么回事啊?


做最好的自己!活出自我!
以下网友喜欢您的帖子:

  
侠士

经验值: 1589
发帖数: 162
精华帖: 3
回复:基于CSS框架的S7-1200Web页面制作
推荐帖


只看楼主 只看精华 楼主 17楼 2019-11-11 20:54:09
以下是引用ZD_JY在2019-11-11 15:30:52的发言 >16楼

图好像不能看了,怎么回事啊?

原文地址

https://www.yuque.com/docs/share/6e1b9546-f51c-4aad-980d-0d4905ac48b5#


个人微信公众号 "iLearning爱学习",头像就是公众号二维码
以下网友喜欢您的帖子:

  
至圣

经验值: 18079
发帖数: 1524
精华帖: 2
回复:基于CSS框架的S7-1200Web页面制作
推荐帖


只看楼主 只看精华 18楼 2019-11-12 09:19:12

这个功能还是不错的,学习了。


我回来了!继续努力!
以下网友喜欢您的帖子:

  
至圣

经验值: 15532
发帖数: 1735
精华帖: 0
回复:基于CSS框架的S7-1200Web页面制作
推荐帖


只看楼主 只看精华 19楼 2019-11-12 09:23:51
以下是引用plectrum在2019-11-08 23:58:50的发言 >楼主

S7-1200有个web页面发布的功能,这个功能好像很少有人提及它的使用,我也只是偶尔用来监控一下PLC变量,因为打开TIA14确实有点慢。

但是这个功能绝对不是什么鸡肋,因为它可以发布用户自定义的页面,而且页面可以加载javascript,这就使得它的功能跟火箭一样一飞冲天了,不过SIEMENS的官方文档也说了,最好不要靠这个功能来代替专业的HMI软件,毕竟它的实时性和安全性还是有待斟酌的。

但是在产品调试阶段还有测试阶段,这个功能确实很值得一用,因为它很方便实现也很容易让不懂PLC系统的测试人员无门槛上手,毕竟打开浏览器这个操作人人都会。

实现起来很简单,网上的英文文档也很多,介绍的很详细,所以这里就不详细说怎么实现了,只是说一说基于主流的CSS框架来使页面制作的更容易和更美观一些,还有就是在实际编写过程中遇到的一些问题

框架结构

在实际开始进行web功能编写前,需要先规划一下需要展示几个页面和页面的布局,这里介绍一个网站layoutit,这个完全可视化的网站可以进行拖放操作实现网页布局,布局后的html代码可以下载下来直接使用,使用的CSS框架是主流的bootstrap,可以说页面的美观程度完全不用操心,绝对主流,下面是我用它生成的一个网页结构,之后下载到PLC后,浏览器中打开的样子.

放入变量

网页结构完成后,就可以放入PLC的变量了,这里其实没什么特别要说的,变量是通过在整个html文件开头通过AWP进行所谓的声明,之后在网页中进行使用

从PLC进行读操作的变量通过

从PLC进行写操作的变量通过

这里要注意引号的使用,如果是内存变量M,或者Q,I之类的输入输出变量,就是通过单引号外加双引号将它括起来,像这样

‘“此处填写变量名”‘

但是如果是DB块的变量,就需要像这样

‘“DataBloack名称”.变量名称’

实际的使用中,无非也就几种操作,

  • 网页端按下按钮控制PLC的变量
  • 在网页端显示PLC的某个变量
  • 网页端输入某个数字到PLC内某个变量

基本这三种操作就能实现大部分功能,其他的诸如枚举变量,数组显示我都很少用到,大家自己研究吧

网页端按下按钮控制PLC的变量

这个功能通过表单的POST方法实现

<form method="POST" action="" align="right">
  <input type="submit" value="开始测试" class="btn btn-primary btn-sm">
  <input type="hidden" name='"AI_TEST_Start_Stop"' value="1">form>

第1,2,4行可以原封不动的敲进去,因为没有任何功能性的东西,都是一些显示和样式,只有第三行比较重要,其中name后面是PLC的变量名,value是给这个变量写入1,这个就实现了按下按钮,这个变量置1的操作,那怎么置0呢,把value改成0就行了。

在网页端显示PLC的某个变量

这个功能最简单,在需要显示变量的地方插入代码

<td class="font-weight-bold">:="200asModbusMaster_DB".ModbusMaster_6:td>

两边尖括号的东西可以忽略,只要注意尖括号内部的代码就行,这是显示的是DB块变量,显示变量的时候可以不需要单引号,但是两端都要有冒号。

网页端输入某个数字到PLC内某个变量

这个和按下按钮控制变量的实现机制是一样的,只不过需要有个输入框

<form method="POST" action="">
  <input type="text" name='"1200asModbusSlave_DB".ModbusSlave_7'>
  <input type="submit" class="btn btn-success btn-sm" value="输入700">form>

可以看到第2行type是text,这就是那个输入框,这里面的数值是赋给name的,name后面的变量就是PLC里面的变量,这里需要有单引号,第三行是通过一个按钮实现提交动作,也就是按下按钮后,1200asModbusSlave_DB”.ModbusSlave_7就写入你输入的那个值了

图形显示

再来说一种,有些时候希望一个Bool变量不是单纯的在网页端显示1或者0,而是能用图形来进行显示,这个也是可以实现的

<img src='Images/Lamp0:="TestFinished":.png' />

这个HTML代码正常的样子其实是这样的

<img src='Images/Lamp00.png' />或者<img src='Images/Lamp01.png' />


发现一些端倪了吧,其实就是用Bool变量来替换Lamp0x后面的这个x,0的时候就是Lamp00.png,1的时候就是Lamp01.png,这两张图片是这样的

最后是这个样子的



百度网盘链接,提取码:xkoa

确实有技术含量的精彩好帖!

值的收藏!


海纳百川,厚德务实!
以下网友喜欢您的帖子:

  
至圣

经验值: 15532
发帖数: 1735
精华帖: 0
回复:基于CSS框架的S7-1200Web页面制作
推荐帖


只看楼主 只看精华 20楼 2019-11-12 09:25:53

 连看三遍!


海纳百川,厚德务实!
以下网友喜欢您的帖子:

  
收起
基于CSS框架的S7-1200Web页面制作
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。