在面前(文中链接仅在同名公众号有效)
西家在技术的路上,相对来说是比较前卫的,数字化已成为西门子的核心战略之一,这从西门子多年来的战略布局不难看出,作为工业领域的技术人员,我们该如何应对呢?
前面我们举了几个例子:
当施耐德PLC遇上亚马逊AWS IOT,自动化工程师的数字化之路
当树莓派+S7-1500与阿里云跨界相遇-自动化工程师的数字化之路
当WinCC OA遇上Mindsphere,自动化工程师的数字化之路
面对新生事物,我们要保持足够的敏感,噱头也好,忽悠也罢,更重要的始终是技术本身,技术的深度和广度,既要严谨,又要开放包容,放下自己的成见,正如前面的文章:
自动化早已不是原来的自动化,为何你却还是原来的你
说的一样,新技术很多,在知识爆炸的时代并不缺少新的知识,但是如何去判定一个技术是否值得长期投入呢?借用阿里大佬的一句话,判定一个技术时候值得长期投入,主要考虑三个方面~
1、技术深度
2、生态广度
3、进化能力
随着物联网的兴起,MQTT也等物联网协议也逐渐被我们熟知,今天我们就以S7-1200和1500为例,分享如何通过它们连接MQTT消息服务器~
MQTT协议简介
MQTT 全称为 Message Queuing Telemetry Transport(消息队列遥测传输)是一种基于发布/订阅范式的“轻量级”消息协议,由 IBM 发布。
MQTT 可以被解释为一种低开销,低带宽占用的即时通讯协议,可以用极少的代码和带宽的为连接远程设备提供实时可靠的消息服务,它适用于硬件性能低下的远程设备以及网络状况糟糕的环境下,因此 MQTT 协议在 IoT(Internet of things,物联网),小型设备应用,移动应用等方面有较广泛的应用。
IoT 设备要运作,就必须连接到互联网,设备才能相互协作,以及与后端服务协同工作。而互联网的基础网络协议是 TCP/IP,MQTT 协议是基于 TCP/IP 协议栈而构建的,因此它已经慢慢的已经成为了 IoT 通讯的标准。
MQTT基本特点
1、MQTT是一种发布/订阅传输协议,基本原理和实现如下:
MQTT 协议提供一对多的消息发布,可以解除应用程序耦合,信息冗余小。该协议需要客户端和服务端,而协议中主要有三种身份:发布者(Publisher)、代理(Broker,服务器)、订阅者(Subscriber)。其中,消息的发布者和订阅者都是客户端,消息代理是服务器,而消息发布者可以同时是订阅者,实现了生产者与消费者的脱耦。
2、使用 TCP/IP 提供网络连接,提供有序、无损、双向连接;
MQTT 是一种连接协议,它指定了如何组织数据字节并通过 TCP/IP 网络传输它们。设备联网,也需要连接到互联网中,在大万维的世界中,TCP 如同汽车,有轮子就能用来运输数据,MQTT 就像是交通规则。在网络模型中,TCP是传输层协议,而 MQTT是在应用层,在 TCP 的上层,因此MQTT 也是基于这个而构建的,提高了可靠性。
3、对负载内容屏蔽的消息传输;可以对消息订阅者所接受到的内容有所屏蔽。
4、具体有三种消息发布的服务质量:
至多一次,消息发布完全依赖底层 TCP/IP 网络。会发生消息丢失或重复。这一级别可用于如下情况,环境传感器数据,丢失一次读记录无所谓,因为不久后还会有第二次发送。
至少一次,确保消息到达,但消息重复可能会发生。
只有一次,确保消息到达一次。这一级别可用于如下情况,在计费系统中,消息重复或丢失会导致不正确的结果。
5、小型传输,开销小,固定长度的头部是 2 字节,协议交换最小化,以降低网络流量;整体上协议可拆分为:固定头部+可变头部+消息体。
6、使用Last Will和Testament特性通知有关各方客户端异常中断的机制;
二、西门子的MQTT CLIENT库介绍
西门子的LMQTT_CLIENT使用的时MQTT3.1.1协议,“LMQTT_Client”库是实现SIMATIC S7控制器的MQTT协议通信的功能块,可以用在SIMATIC S7-1500和SIMATIC S7-1200中。函数块“LMQTT_Client”集成了MQTT客户机所有功能,允许您将MQTT消息传输到代理(发布者角色)和创建订阅(订阅者角色)。同时可以通过TLS来保证安全通信。
实现步骤:
1、确定MQTT代理的CA证书。
2、将第三方证书导入STEP 7 (TIA Portal),该证书现在位于STEP 7的全局证书管理器中。
3、您必须将导入的证书分配给S7 CPU。要确认证书有效,S7-CPU的时间必须是当前的。
4 .函数块“LMQTT_Client”承担以下角色:
三、“LMQTT_Client”测试
测试需求软硬件需求:
1、emqx-centos7-v3.2.2 Linux版本
2、1500PLC
3、TIA Portal V15.1
测试步骤:
1、安装MQTT的服务器。MQTT服务器的搭建有很多种方法,本次测试选择的emqx-centos7-v3.2.2的服务器。搭建步骤请参照以下的网站链接,这里不做过多的介绍。https://www.jianshu.com/p/6a9d15e8d0bc
安装完成后使用命名行启动emqx的MQTT服务器,如下图所示。
2、搭建完成后可以使用客户端软件测试连接是否正常。本次测试使用的客户端为MQTTBox,MQTTBox下载和使用请参考官网链接,这里不做过多的描述。http://workswithweb.com/mqttbox.html
3、下载“LMQTT_Client”库文件,库文件的网址如下:
https://support.industry.siemens.com/cs/ww/en/view/109748872
4、创建新的SETP 7项目,导入“LMQTT_Client”库文件。
5、将库里的功能块和数据类型拷贝到项目中。
6、创建用户数据块,添加“LMQTT_Client”功能块的接口数据。同时将“LMQTT_Client”添加到OB1中。如下图所示:
7、建立安全通信,具体步骤如下:
a) 激活"Use global security settings for certificate manager"
b) 启用项目保护,操作如下图所示。保护项目后每次进入项目都要输入密码,所以密码一定要记住。
c) 添加服务器证书。选择"Certificate manager",并在"Trusted certificates and root certification authorities"中添加emqx CA证书。
d) Emqx的CA证书在/emqx/etc/certs/目录下,文件名为cacert.pem。
e) 添加完成后可以看到证书的ID号为3,证书有效期为2019年11月2号。这里证书测试用的所以有效期时间比较短,证书到期后可以重新申请CA证书。
f) 选择PLC,在PLC的属性下选择"Certificate manager",并在"Certificates of the partner devices"选项下选择上一步安装的CA证书。
g) 设置PLC的IP地址和路由器的地址。
h) 上面步骤完成后下载并启动CPU。这时需要设置“LMQTT_Client”相关的参数。具体参数设置截图如下:
参数中在TCP参数解释如下图所示:
参数中在MQTT相关参数解释如下图所示
8、仿真PLC并发布消息和接受消息。发布消息触发PublishData.PublishMessage,订阅消息置位SubscirbeData. SubscirbeToTopic,订阅和发布主题都为TF_1,测试效果如下图所示。
四、总结
1200和1500 PLC使用“LMQTT_Client”库可以实现与MQTT服务器的通讯,MQTT服务器可以是互联网”云端”的设备,也可以是局域网内的通讯。本次演示的是固定IP局域网的的MQTT通讯,“LMQTT_Client”同样也支持域名的访问。
往期推荐
MES、SCADA、PLC项目调试,遇到网络丢包怎么办?
MES、SCADA项目组网,如何进行冗余网络配置 | 工业通讯应用(一)
PLM、MES、SCADA等工业软件系统实施中的容灾与备份有什么区别?
工业网络的两层与三级-从PLM到MES,再到SCADA、PLC的连接
PLM、EMS/MOM、SCADA等各类工业软件的B/S架构与C/S架构有何不同
浅谈 MES、SCADA、PLC项目中的串口通信(232,485,422)及常见问题
PLC与SCADA或第三方软件的联合仿真调试—NetToPLCSIM
SCADA、DCS与PLC知多少?| 综合篇(三)
MES、SCADA项目中的数据采集—基于C#与研华IO模块的ModbusTCP通讯
MES、SCADA下的数据采集— 西门子S7comm协议分析
MES、SCADA下的数据采集—从TCP到你应该了解的socket通信
MES、SCADA项目中的数据采集—以太网下三菱MX Component应用
着现在移动通信的发展,PLC也要高大上了,用手机扫二维码就可以进行调整参数、监控程序是非常方便了,所以,就看看了关于web服务器的设置。将学习到的内容跟大家分享下。
一、web服务器的介绍
借助 S7-1200 的 Web 服务器,用户可经由 Web 页面来访问 CPU相关数据以及过程数据。
可通过 PC 或移动设备访问 S7-1200 Web页面。对于小屏幕设备, Web服务器支持一系列基本页面
使用 Web 浏览器通过CPU建立连接可访问S7-1200 CPU的IP地址,或访问本地机架中已启用Web服务器的CP(通信处理器)模块 。
标准 Web 页面
S7-1200 包含可通过 PC 的 Web 浏览器进行访问或通过移动设备访问的标准 Web 页面:
● 介绍 - 标准 Web 页面的进入点;
● 起始页面 - 有关 CPU 的常规信息;
● 标识 - 有关 CPU 的详细信息,包括序列号、订单号和版本号;
● 模块信息 - 有关本地机架中的模块和固件更新功能的信息;
● 通信 - 有关网络地址、通信接口的物理属性和通信统计的信息;
● 诊断缓冲区 - 诊断缓冲区;
● 变量状态 - CPU 变量和 I/O,可通过地址或 PLC 变量名称进行访;
● 文件浏览器 - 用于浏览存储在 CPU 或存储卡内部的文件(如数据日志和配方)的浏览器;
● 登录 - 以其他用户身份登录,或注销。
这些页面内置于 S7-1200 CPU 中,提供英语、德语、法语、西班牙语、意大利语和简体中文等版本。 有些页面需要在STEP 7 中组态附加用户权限以查看页面。 有关标准 Web 页面以及如何访问这些页面的详细信息,请参见"标准 Web 页面"部分。
用户定义的 Web 页面
S7-1200 还支持您创建可访问 CPU 数据的用户定义的 Web 页面。 可以使用所选的HTML 创作软件来开发这类页面,并且可将预定义的"AWP"(Automation Web Programming,自动化 Web 编程)命令包含在 HTML 代码中以访问 CPU 数据。
有关开发用户定义 Web 页面以及在 STEP 7 中进行相关组态和编程的具体信息,请参见用户定义的 Web 页面一章。
可通过 PC 或移动设备,从标准 Web 页面访问用户定义页面。
Web 浏览器要求
Web 服务器支持以下 PC Web 浏览器:
● Internet Explorer 8.0
● Internet Explorer 9.0
● Mozilla Firefox 17.0.1
● Google Chrome 23.0
● Apple Safari 5.1.7 (Windows)
● Apple Safari 6.0.2 (Mac)
Web 服务器支持以下移动设备 Web 浏览器:
● Internet Explorer 6.0 及早期版本,适用于 HMI 面板
● Mobile Safari 7534.48.3 (iOS 5.0.1)
● Mobile Android Browser 2.3.4
● Mobile Google Chrome 23.0
二、如何启用web服务器
1. 启用 Web 服务器
在 STEP 7 中,通过"设备组态"(Device Configuration) 为要连接的 CPU 启用 Web 服务器。
要启用 Web 服务器,请按以下步骤操作(可参考图1所示):
1. 在设备组态视图中选择 CPU。
2. 在巡视窗口中,从 CPU 属性中选择"Web 服务器"(Web server)。
3. 选中"激活此设备所有模块上的 Web 服务器"(Activate web server on all modules of this device) 复选框。
4. 出于安全考虑,对 Web 服务器进行安全访问时,请选择"仅允许使用 HTTPS 访问"(Permit access only with HTTPS)。
图1 启用web服务器
2. 组态 Web 服务器用户
您可为用户组态通过 Web 服务器访问 CPU 的各种权限级别。
要组态 Web 服务器用户及其相关权限,请按以下步骤操作(可参考图2所示):
1. 在设备组态视图中选择 CPU。
2. 在巡视窗口的 CPU 属性中选择"Web 服务器"(Web server),启用 Web 服务器。
3. 在 Web 服务器属性中选择"用户管理"(User management)。
4. 为想要使用的用户登录输入用户名、访问级别和密码。
将组态下载到 CPU 后,只有授权用户才能以相应权限访问 Web 服务器功能。
图2
Web 服务器访问级别
STEP 7 提供的默认用户名称为"所有人"(Everybody),没有密码。
默认情况下,此用户没有任何附加权限,只能查看开始和简介两个标准的 Web 页面。 不过,可以为"所有人"(Everybody)用户和组态的其他用户授予附加权限:
● 查询诊断
● 读取变量
● 写入变量
● 读取变量状态
● 写入变量状态
● 打开用户定义页面
● 写入用户定义页面
● 读取文件
● 写入/删除文件
● 更改工作模式
● 闪烁 LED
● 执行固件更新
● 更改系统参数
● 更改应用程序参数
3. 通过 PC 访问 Web 页面
可以通过 S7-1200 CPU 或本地机架中任意已启用 Web 服务器的 CP 的 IP 地址从 PC 或从移动设备访问 S7-1200 的标准 Web 页面。
要通过 PC 访问 S7-1200 的标准 Web 页面,请按以下步骤操作:
1. 请确保 S7-1200 和 PC 位于同一个以太网中,或二者之间直接使用标准以太网电缆进行连接。
2. 打开 Web 浏览器,输入 URL"https://ww.xx.yy.zz",其中"ww.xx.yy.zz"与 S7-1200 CPU 或本地机架中 CP 的 IP 地址对应。
Web 浏览器将打开"简介"(Introduction) 页面(可参考图3所示)。
图3
4. 通过 PC 访问标准 Web 页面
可以通过点击图3中的“进入”按钮,来访问标准 Web 页面,如下图4所示:
图4
7-200概述:
S7-200系列在集散自动化系统中充分发挥其强大功能。使用范围可覆盖从替代继电器的简单控制到更复杂的自动化控制。应用领域极为广泛,覆盖所有与自动检测,自动化控制有关的工业及民用领域,包括各种机床、机械、电力设施、民用设施、环境保护设备等等。如:冲压机床,磨床,印刷机械,橡胶化工机械,中央空调,电梯控制,运动系统。
S7-200选型:http://www.con-star.com/product/product8.html
S7-200 smart概述:
全新的S7-200 SMART与其他西门子PLC突出带来两种不同类型的 CPU 模块,标准型和经济型,全方位满足不同行业、不同客户、不同设备的各种需求。标准型作为可扩展 CPU 模块,可满足对 I/O 规模有较大需求,逻辑控制较为复杂的应用;而经济型 CPU 模块直接通过单机本体满足相对简单的控制需求。
S7-200 smart选型:http://www.con-star.com/product/product7.html
硬件角度:
1、S7-200SMARTPLC相对于S7-200的PLC来说I/o点数更丰富,单体I/o点数可达60点。而S7-200PLC中的CPU226的PLC只能提供40个点。
2、S7-200SMART PLC带有信号板扩展功能,信号板可以扩展模拟量,数字量,以及通信等,使用信号板可以不占用控制柜的空间,是设计更人性化。
3、S7-200SMART的PLC在其本体单元上增设了一个以太网端口,集成了强大的以太网功能。此以太网口可以支持PLC程序的上载下载,相对于S7-200的PLC来说省去了专用的编程电缆,使用一个普通的网线就可以实现程序的上载下载,同时可以支持与触摸屏、其他的CPU模块以及计算机之间的通信连接。
4、S7-200的PLC可以支持2轴的高速脉冲输出,而对于S7-200SMART的PLC来说可支持3轴100KHZ的高速脉冲输出,支持PWM/PTO输出方式以及多种运动模式。
5、S7-200 SMART和S7-200的PLC都支持扩展卡功能,S7-200的扩展卡必须是西门子专用的扩展卡使用的使用来实现配放的存储以及数据记录的功能。而S7-200SMART的PLC所使用的存储卡为市场上通用的micro SD卡,可实现程序的更新和固件的升级。
软件角度:
1、相对于step7 Microwin软件来说,Step7 Microwin SMART的软件更人性化,如新颖的带状式菜单,全移动式界面窗口,方便的程序注释功能,对于Step7 Microwin的软件来说,里面的系统快,数据块状态图标等都不支持拖动功能,位置是固定的,而对于Step7 Microwin SMART的编程软件来说都可以支持拖动功能,这样有助于我们在调试程序的时候带来方便。
2、Step7 Microwin的编程软件中对PLC的使用的时候不支持硬件组态功能,对于Step7 Microwin SMART的PLC来说需要使用硬件组态的功能。
*请认真填写需求信息,我们会在24小时内与您取得联系。