学会这个,PLC工程师也能月薪15000
1、前言
PLC工程师一直以吃苦耐劳的形象呈现在大众面前。我们常年出差在外,拿着一份不高不低的工资;我们大都正值中年,背负着各种贷款和家庭开支的压力;我们内心都渴望提升,却始终感觉欲投无门。
本文将以PLC技术为主线,基于PLC开发一个智能家居仿真系统,用一个实际案例让大家明白:PLC还可以这么玩,PLC玩好了也能拿高薪。
在这个浮躁的社会,很多人可能连文章都看不到最后。所以,话不多说,我们先看下最终实现的效果:

看完视频,我们应该都在思考,这个案例是如何基于PLC实现的。那么接下来,我就按部就班对整个实现过程进行阐述。
2、协议定义
刚开始,我想通过自定义TCP或者西门子S7协议来实现,但是考虑到TCP的不易理解以及S7的不够通用,最终还是选择ModbusTCP,Modbus协议的通用性会更强。所以本案例仅仅是以西门子PLC为例,对于所有支持Modbus协议的PLC都适用。 在确定好使用Modbus协议后,如果想要实现这种文字对话,我们需要在Modbus协议的基础上,再定一个文本协议:

3、PLC开发
1、创建协议DB块 针对上面的文字协议,创建一个协议DB块(ProtocolDB),专门用于存储这些协议文本,这样即使后续协议有变动,只需要修改一下这里就可以了,程序本身是不用变化的。

2、创建通信DB块
顾名思义,通信DB块主要是包含通信涉及的一些变量,这里设计了6个变量,分别为接收数据、发送数据、指示灯状态、温度实际值、灯序号索引、温度设定值,这些值将按顺序对应Modbus地址。

3、Modbus服务器
西门子PLC如果使用Modbus通信,需要调用一个指令MB_SERVER,这个指令说白了就是确定PLC的地址与Modbus地址之间的映射关系,如下图所示,P#DB1.DBX0.0 BYTE 92就是我们创建的通信DB块,对应Modbus地址40001-40046。

4、控制逻辑
在做好以上准备工作后,开始去写控制逻辑,控制思路是这样的:

5、控制逻辑程序

6、协议转换程序

7、MThings测试
MThings是一款基于MODBUS协议簇,面向开发、测试、运维人员的辅助工具。完全由国人自主开发,绿色版,永久免费。

4、上位机开发
1、上位机UI界面设计
上位机部分的UI界面设计主要是根据功能来做的,包括PLC选择、开始对话、结束对话、文字发送及显示、语音控制及显示以及设备状态显示,界面如下所示:

2、上位机功能实现
上位机功能的实现主要是Modbus变量读取及写入,但是这里需要根据控制逻辑做一些转换,对于通信库这块,最终决定采用了NModbus这个开源免费的库,对其进行二次封装,便于调用。由于篇幅有限,仅展示核心代码。
开始对话

文字发送

实时通信

5、写在后面
近几年, 随着越来越多的设备开始加入IIoT 网络(Industrial Internet of Things,工业物联网简称IIoT),IT与OT之间的界限将逐渐消失,直到成为一个或相同的系统为止。
所以,越来越多的电气工程师开始转型上位机开发。因为在电气的基础上,如果掌握了上位机开发,薪资突破15000,将会是很容易的一件事。
为了便于大家更好地学习这个项目,我将通过免费直播课的方式演示整个项目的部署及开发,通过完整的项目分析及编写,即使你是零基础,也能带你实现项目功能。想要学习的童鞋,赶紧扫描下方二维码,进入班级群。
