前言:西门子S7-200PLC广泛应于工业控制领域,是一款性能高,运行稳定的控制器。此次我们要把西门子的S7-200PLC通过modbus驱动连接到EMCP物联网云平台(简称EMCP),实现电脑Web页面、手机APP和微信对200PLC的远程监控。 更多技术资料请搜索蓝蜂物联网
1) S7-200 一台(建议使用CPU226 或 CPU224 有两个串口的PLC,port1口做程序的下载和在线监视,port0做Modbus-RTU从站与EG20网关通讯)。也可以使用Smart200PLC(以下以老款200PLC做案例解说)。
2) 河北蓝蜂科技的EG20网关一台,天线和电源适配器(以下用EG20作为实例)。
3) SIM卡一张,有流量,大卡(移动、联通或电信卡)。
4) DP9针公头一个。
5) 联网电脑一台(WinXP/Win7/Win8/Win10操作系统)
物料准备如下;
网关相关技术参数与使用说明,可参考《EG20用户使用手册》。
1、 保证网关可以正常联网,可通过4G卡(移动/联通/电信流量卡,大卡)联网(需接上随网关附带的天线)或通过网线联网(需将路由器出来的网线接到网关的WAN口);
2、 网关接12V或24V直流电源,上电。(注意,电源正负极不要接反)。
200PLC连接电源(注意电源是24VDC还是220VAC),准备一颗9针串口头(如下图),用两颗导线分别焊接的3和8引脚(200PLC系统手册中有介绍,3和8引脚为RS485通讯口)。此时我们将PLC prot0串口的3引脚连接EG20网关的“RS485A”端子,8引脚连接EG20网关的“RS485B”端子。
1,将200PLC经编程电脑连接到电脑上,打开Step7-MicroWin编程软件,新建工程,在主程序中添加Modbus Slave Port0功能块(MBUS_INIT,MBUS_SLAVE)。
库文件
•西门子Modbus从站协议库包括两条指令:MBUS_INIT 指令和MBUS_SLAVE 指令。
•MBUS_SLAVE 指令用于为Modbus主设备发出的请求服务。
•MBUS_INIT 指令用于启用、初始化或禁止Modbus从站通讯。在使用MBUS_SLAVE 指令之前,必须正确执行MBUS_INIT 指令。指令完成后立即设定“完成”位,才能继续执行下一条指令。
MBUS_INIT、MBUS_SLAVE指令说明请参考“STEP 7-MicroWIN”软件中的帮助。
注意:CPU222在设置MBUS_INIT指令时,“MAXAI”要设置成“16”。
上面我们将 Modbus 保持寄存器区从 VB1000 开始(HoldStart = VB1000),并且保持寄存器为100个字(MaxHold=100),因保持寄存器以字(两个字节)为单位,实际上这个通信缓冲区占用了VB1000~VB1200共200个字节。
2,设置库存储区。
点击菜单栏中的“文件”在下拉框中选择“库存储区分配”在打开的对话框中输入库存储区的起始地址,注意避免该地址和程序中已经采用或准备采用的其它地址重合,可以点击“建议地址”避免modbus功能块所占用的地址和程序中的寄存器地址重叠。
3、编译程序,编译无误后,通过PPI电缆将程序下载到PLC(如果PLC只有一个串口,且这个串口配置成了modbus口,那么我们在下程序时需要将PLC的运行开关扳到“stop”位置),下载完成后断电,打开程序监控查看MBUS_INIT 指令和MBUS_SLAVE 指令的“Error”引脚输出是否为正常(0位正常,其他数值为故障,请参看西门子PLC技术手册中的故障列表)。
用管理员账号登录EMCP平台(建议使用360浏览器极速模式、浏览器( Chrome)或者支持Chromium内核的浏览器),对EMCP云平台进行设置。具体操作参照《EMCP物联网云平台用户手册》。登录EMCP后首先进入设备列表显示页面,因为我们未创建任何设备,所以是一个空页面,我们需要按照以下步骤进行操作。
步骤:点击【后台管理】(只有管理账号才有此权限)→【设备中心】→【EG设备管理】→【+新增】→填写设备信息→点击【保存】。其中,【设备名称】必填,其余选项均可选填。
EG设备管理网关配置中最主要两个地方需要配置,一是配置网串口通讯参数,二是创建modbus驱动,下面分步骤对此功能进行讲解。注:网关只有在线后才可以进行远程配置。
步骤:点击【步骤②:网关、仪表管理】→【绑定网关】→填写【SN编号】和【验证码】→【确定】。
SN和验证码在网关的机壳标签上,SN为12位纯阿拉伯数字,验证码为6位英文字母,【备注】可以根据需求填写,编辑完成后点击【确定】。
(带*必填项)
此时在“网关基本信息中”可以看到绑定的网关是否连接到平台(成功登录平台可以看到“在线”绿色字样,如果不成功则显示“离线”灰色字样,此时请检查网络或网络信号)。
使用串口RS485通讯,需设置RS485通讯参数。
在网关上连接的每一个设备,都需要建立对应的设备驱动。就像电脑上插了一个鼠标,只有电脑系统里安装了这个鼠标的驱动,电脑才能识别到这个鼠标。设备跟网关通过哪个通讯口连接,就在哪个通讯口下添加驱动。如图所示,点击【RS485】后面的【添加驱动】出现右侧基本配置表进行配置。
注:配置完成后,点击保存。
基本配置介绍:
【驱动名称】:必填项,自定义即可,当有多个驱动时进行区分。
【品牌】:必填项,选择“通用modbus设备”。
【型号】:必填项,选择“Modbus RTU”。
【设备地址】:必填项,设备地址根据200PLC设置的从站号进行填写,本案例PLC从站号为“1”,所以此处填“1”。
【最小采集周期】:是网关采集设备数据的时间间隔,单位:ms。如设置1000ms,即网关1s采集一次设备数据。
【通讯等待时间】:网关接收通讯数据等待时间。可根据需要进行调整,默认1000ms。
【16位整型】、【32位整型】、【32位浮点型】:是指对应数据类型的解码顺序。默认设置即可
【分块采集方式】:0— 按最大长度分块:采集分块按最大块长处理, 对地址不连续但地址相近的多个分块,分为一块一次性读取,以优化采集效率;1— 按连续地址分块:采集分块按地址连续性处理,对地址不连续的多个分块, 每次只采集连续地址,不做优化处理。直接选择默认即可。
【4区16位写功能码】:写4区单字时功能码的选择。直接选择默认即可。
步骤:点击【步骤③:变量管理】→【+添加变量】→填写变量信息→【保存】。
变量介绍:
【仪表、PLC】:必填,选择刚才创建的驱动即可。根据实际情况选择。
【变量名称】:必填,自定义即可。注意不能有重复的名称。
【单位】:非必填,自定义即可。在列表展示时,变量会带上单位展示。
【寄存器类型】:必填,在西门子PLC中,Q点对应【线圈(0x)】,I点对应【离散量输入(1X)】,V区对应【保持寄存器(4X)】,AI区对应【输入寄存器(3X)】。
【寄存器地址】:必填,地址填写时不带寄存区标志符,具体对应设置见下方图片。
【数据类型】:必填,根据实际需要选择即可。
【小数位数】:非必填,根据需求填写。
【死区设置】:非必填,默认即可。根据需要填写即可。更详细的说明请参考后面“?”帮助。
【状态列表】:非必填。可将数值直接与文本映射。如值为“10”,映射字段为“设备故障”,则当采集到变量的值为“10”时,会直接在设备监控和历史报表中显示“设备故障”。
【数值运算】:非必填。可将采集到的数据根据填写的公式进行计算,更详细的说明请参考后面的“?”帮助。
【读写方式】:可根据需求自行修改该寄存器的读写方式,默认为只读。
PLC各寄存区变量在平台添加填写示例如下图所示:
添加完成后,【变量管理】如下图所示,此时可以点击【数据测试】按钮检查变量值能否采集到,或者值是否正确。
打开Step7-MicroWin 编程软件的“程序状态监控”和“状态表监控”,查看程序的运行状态和内部数据的数值显示。通过状态表我们可以查看各数据的当前值和对数据进行强制。如下图。
用户登录EMCP平台,点击”S7-200“设备的图片或设备名称进入EG设备即可查看、修改相关数据。