前言:西门子S7-200 SMART PLC(以下简称 200-SMART)是一款优秀的可编程控制器,广泛应于工业控制领域,是一款性能高,运行稳定的控制器。200-SMART具备网口进行程序的上下载和通讯,此次我们要使用MODBUS-TCP协议,通过网口把200-SMART连接到EMCP物联网云平台(简称EMCP),实现电脑Web网页、手机APP和微信对200-SMART 内的VW1000、VW1002、I0.0寄存器的远程监控和VW1004和Q0.0的远程读写。
一、准备工作。
1.1在对接前我们需准备如下物品;
- 西门子S7-200 SMART PLC一台,及通讯用网线。
- 河北蓝蜂科技的GM20 DTU模块一台,天线和电源适配器(WM20 DTU使用方法相同)。
- 4G SIM卡一张,有流量,大卡,任意运营商均可。
- 联网电脑一台(WinXP/Win7/Win8操作系统)。
- 电工工具,通讯线材等。
1.2 DTU准备工作
此处参考《GM20-DTU用户使用手册》进行操作,我们需要对DTU网关(以下均以GM20-DTU网关来介绍)连接天线、插上SIM卡、连接12V或24V的电源适配器。
1.3 PLC准备工作。
200 SMART连接220V交流电,先使用电脑通过网线连接PLC的以太网通讯口进行程序的配置,然后使用网线连接GM20的LAN口和PLC的以太网口,进行MODBUS-TCP通讯。
二,PLC的MODBUS-TCP通讯创建。
第一步,创建PLC的MODBUS-TCP服务器;
使用西门子的《STEP 7-MicroWIN SMART V2.2》编程软件, 在PLC程序中添加MB_Server指令库,MB_Server指令库包含MBS_Connect和MBS_Slave等2个指令。如下图:(下图为一个能够正常通讯的指令块设置)
MBS_Connect指令各个参数定义如下:
- EN 使能:必须保证每一扫描周期都被使能。
- Connect:启动TCP 连接建立操作。
- Disconnect: 断开TCP连接操作。
- ConnID: TCP 连接标识。
注意:Modbus TCP 属于TCP通信,也是开放式用户通信中的一种,所以ConnID参数不能与其他TCP、ISO-on-TCP、UDP通信相同。
- IPaddr1~IPaddr4: Modbus TCP 客户端的IP地址,IPaddr1 是 IP 地址的最高有效字节,IPaddr4 是 IP 地址的最低有效字节。建议设置为0.0.0.0,这样任意一个客户端均可以访问。
- LocPort: 本地设备上端口号(必须设置为502)
- MaxHold: 用于设置 Modbus 地址 4xxxx 或 4yyyyy 可访问的 V 存储器中的字保持寄存器数。此数值必须设置大于等于需要读取的所有数据的长度,例如,需要监控100个字的V区数据,此数据必须设置大于等于100。
- HoldStart: 间接地址指针,指向 CPU 中 V 存储器中保持寄存器的起始地址。本例中VW1000 即对于 Modbus 地址 40001 。(即VW1000对应40001,VW1002对应40002)。(其他寄存器,如I寄存区可通过功能码02,Q寄存区可使用功能码01,AI寄存器可通过功能码04进行直接访问)。
- ConnectDone:Modbus TCP连接已经成功建立。
- Busy: 连接操作正在进行时。
- Error: 建立或断开连接时,发生错误。
- Status:如果指令置位 “Error” 输出,Status 输出会显示错误代码。
MBS_Slave指令各个参数定义如下:
- EN 使能:必须保证每一扫描周期都被使能。
- Done:当 MB_Server 指令响应 Modbus 请求时,Done 完成位在当前扫描周期被设置为 1 ; 如果未处理任何请求,Done 完成位为 0 。
- Error: 错误代码,只有在 Done 位为1时错误代码有效。
第二步,分配库地址区
在编程软件右侧,在【程序块】功能点击鼠标右键,调用【库存储区】功能,使用【建议地址】,保证库存储区与程序中数据存放区没有重叠即可,点击【确定】,完成整个MODBUS-TCP服务器配置。如下图:
第三步,将修改好的程序下载到PLC中,下载时请记录PLC的IP地址。 本文案例,PLC的IP地址为192.168.2.2。
三,EMCP平台设置。
用管理员账号登录EMCP平台www.lfemcp.com (建议使用IE9以上浏览器或谷歌浏览器),对EMCP云平台进行设置。具体操作参照《EMCP物联网云平台用户手册》。登录EMCP后首先进入设备列表显示页面,因为我们未创建任何设备,所以是一个空页面。点击右上角的“后台管理”按钮(只有管理账号才有此权限),进入EMCP平台的后台。
3.1远程配置DTU
打开“后台管理—>模块管理”页面,将DTU绑定至此管理员账号,然后就可以使用“远程配置”功能来配置DTU的各项通讯参数和功能参数。最主要两个地方需要配置,一是与PLC通讯口参数,二是设置DTU定时采集PLC数据的MODBUS通道参数,下面分步骤对此功能进行讲解。注:模块只有在线后才可以进行远程配置。
3.1.1模块绑定
模块初始绑定密码是111111,直接点击绑定即可。
3.1.2 模块远程配置
在【模块管理】中使用对应DTU的【远程管理】功能来进行DTU各项通讯参数的设置;模块的远程配置最好先【读取】再【写入】,只有写入成功后才表示该参数成功配置到DTU中,执行写入后也可以通过读取操作来检查之前的操作是否成功。第一步进入状态信息页,查看DTU状态,如下图:
第二步,进行【通讯设置】,将DTU的通讯口设置为LAN网口通讯,因为PLC的IP地址为192.168.2.2,需要设置DTU的通讯IP为同一个子网内的IP,此时设置为192.168.2.254。然后在Modbus-TCP Server 参数设置列表中,添加200 SMART的从站号、IP地址和通讯端口号(MODBUS-TPC标准为502端口号)
数据通讯口:设置为与PLC通讯口类型,可选RS485、RS232或LAN网口,此处使用LAN网口进行MODBUS-TCP通讯;
本机IP:DTU作为MODBUS-TCP通讯的客户端的IP地址,此IP必须要在通讯局域网的子网段内,且不与子网内的其他设备IP重复,直连200 SMART的话,直接设置为与200 SMART同一个子网段即可,本案例设置为192.168.2.254;
Modbus-TCP Server 参数:
从站号:为PLC的从站号,此从站号不与其他参与通讯的PLC重复即可,本案例设置为1;
IP地址:PLC作为MODBUS-TCP服务器的IP地址,本案例为192.168.2.2;
端口号:PLC通讯端口,MODBUS-TPC协议标准端口为502,本案例也是用502端口;
第三步,进行【Modbus配置】,配置DTU定时读取PLC的数据发送到平台的各项参数。如下图:
实时数据定制采集列表中的参数说明:
设备从站号:DTU连接的PLC的从站号,与【通讯设置】中PLC的从站号一致。本案例为1;
功能码:为模块读取设备MODBUS寄存区的标志符。“功能码01”对应“线圈”(0XXXX),“功能码02”对应“离散量输入”(1XXXX),“功能码03”对应“保持寄存器”(4XXXX),“功能码04”对应“输入寄存器”(3XXXX)。西门子PLC中,Q点对应01功能码,I点对应02功能码,MBS_Connect的HoldSt`指向的区域对应03功能码(上文PLC程序指向的是VW1000到VW1198),AI区对应04功能码。
起始地址:为模块所连设备的MODBUS寄存器读取的起始地址(不包含寄存区标识符)。图中第一个MODBUS指令地址1代表00001,第二个MODBUS指令地址1代表10001,第三个MODBUS指令地址1代表40001。
数据长度:为DTU读取设备数据的连续长度,图中的长度为8和10,既连续读取从00001到00008、 10001到10008以及40001到40010。
标准DTU可连接多个从站(最多4个),可点击“新建”创建MODBUS指令通道,配置规则按上述说明。
结合上文PLC从站的建立,这里实时监控的是PLC的Q0.0到Q0.7、I0.0到I0.7和VW1000到VW1018。
注:当DTU出现异常时,如无法连接网络在线,或者无法与PLC正常通讯,此时可以使用配置口(默认RS232)连接PC,使用“DTU配置软件”来查看状态及异常报警,详见《DTU配置软件使用手册》。
3.2 新建数据规则
点击网页左侧的【数据规则】进入规则设置页面,点击右上角的【新增】,在弹出的窗口中设置该数据规则的名称“S7-200 SMART”和展示样式【列表展示】,我们可以选择列表展示或组态展示,
列表展示:我们所添加的数据会以固定的列表样式展示,列表展示方式简单方便(数据测试阶段可选用列表展示)。
组态展示:我们可以任意绘制设备数据的展示样式比如添加图形、图片、仪表盘、柱状填充和文字等内容(此功能类似传统的组态软件可参考《EMCP平台画面组态使用说明》文档)。
数据规则新建完后点击【实时数据】新增实时数据解析规则(3.1.2中设置的Modbus配置),点击【读写数据】创建平台对设备手动读写操作的数据规则。创建规则展示如下。
注:实时数据:是DTU根据所配置的Modbus采集通道(参考上面的3.1介绍),按设定的采集间隔定时读取从站数据并上传到平台所显示的内容;
读写数据:无需在DTU配置Modbus定时采集通道,可直接通过平台对下位设备进行数据的手动读写操作;
EMCP平台所有"寄存器地址"设置均不需要带寄存器区标识符,如读写“保持寄存器”(03功能码)中40019的数据,在平台数据规则中的"寄存器地址"填写19即可(注:如果设备Modbus地址计数是从0开始的,则需要做加1处理,即填写20) 。
报警设置,在创建好的实时数据中,点击【报警】选项,进入报警设置页面。我们可以设定该数据的报警上下限和报警内容以及是否启用此报警。设定报警后当该数据超出报警上下限后平台会自动记录报警的时间和报警值,同时平台会向用户登录的APP或微信推送报警消息。
3.3 新建设备
在后台管理中,选择【设备管理】-> 【新增】新建一个设备“S7-200 SMART ”。新建设备是填写设备的基本信息,1选择设备匹配的图片(从本地上传,也可不选择,系统会以默认图片显示);
2输入模块SN,输入要绑定的SN的编码,如果此SN之前未绑定,则会弹出绑定窗口进行绑定;
3选择上面创建的数据规则;
4点击“地图”按钮选择设备所在的地理位置。完成后点击【保存】。
四,实验效果。
打开PLC编程软件,将PLC转至在线,并且从监控表中监控当前PLC的数据,如下图:
用户登录EMCP平台(www.lfemcp.com),点击“S7-200 SMART ”设备的图片或设备名称进入设备。首先看到的是PLC定时采集数据的显示(实时数据),通过点击【读写数据】对PLC进行读写操作,点击【历史数据】查看设备定时存储数据的历史数据报表,点击【报警记录】进入报警信息记录报表页面,显示如下。
在手机安装《云联物通》手机APP(可通过电脑网页平台登录页右上角的二维码扫描下载,或各大应用商店下载),凭用户名和密码登录,进入设备列表后点击“S7-200 SMART”设备,直接进入的是实时数据列表页面或组态画面(组态展示方式下),点击右上角菜单栏【三杠按钮】,弹出功能菜单,在菜单中点击【读写数据】对读写数据进行读写操作,点击【历史报表】查看设备的历史存储数据报表,点击【历史曲线】可查看各数据的历史趋势图,点击 【报警信息】查看该设备的报警记录。
五,辅助功能介绍
5.1 画面组态功能。
通过【后台设置】->【数据规则】->【设置】->【组态展示】这几个步骤来选择使用组态展示形式来展示对应数据规则。选择为组态展示后,规则的画面组态选项变为可用,点击【画面组态】”项,进入编辑页面。通过组态编辑页面我们可以任意绘制图片、文字、数显框、按钮、指示灯、管道、设备等等空间,详细功能请参考《EMCP平台画面组态使用说明》http://www.lanfengkeji.com/h-col-135.html。
5.2微信功能。
微信关注“EMCP物联网云平台”公众号,按照提示绑定平台账号,即可使用微信监控设备,接收报警信息。为了便于对设备的管理建议将“EMCP物联网云平台”公众号“置顶”。
5.3 数据规则中开启通讯报警和授权普通用户功能。
通讯报警功能就是当DTU与PLC通讯异常时,在相应设备中会进行报警,根据通讯异常的原因在报警内容中进行注释,方便调试。设置及效果如下:
5.4设备公开功能。
在设备管理中,可以将设备的属性设置为公开,公开后会生成设备所属的url连接和二维码,通过该连接和二维码可实现免登陆打开设备,同样也可将设备分享到社交圈。
5.5新增普通账号及设备授权。
管理员账号创建完设备后,可以通过“普通账号”选项为用户创建一个单独的账号供其访问所属的设备。此功能主要为用户开通一个专属的账号,用户查看自己所属的设备。
5.6视频监控功能。
EMCP平台可实现萤石云摄像头的接入,从而实现web、APP、微信等终端对现场视频监控功能。详情请浏览《EMCP物联网云平台视频使用说明V3.6》
5.7风格定制/系统定制服务。
对于大中型企业,我们还为用户提供平台和软件定制服务,介绍如下;
风格定制服务:风格定制是在原有EMCP平台基础上实现用户个性化风格的显示,整个服务依旧运行在原EMCP平台服务器上的,布局、功能和架构等基础内容不做改变。风格定制内容主要体现在电脑网页、手机网页、安卓APP、微信公众平台的登录域名、登录页、平台名称、平台图标等。适合企业品牌建设。
私有云部署服务:为将EMCP系统部署到用户的服务器上,除了显示风格的定制,还可以更改系统的功能的增加、布局显示的改变以及数据分析等服务。
如有需求可联系蓝蜂销售人员。
六,故障分析。
6.1 设备离线的原因
1.SN码和密码绑定错误,EMCP平台所建设备的SN码必须和所连GM10模块的SN码相同(SN位于GM10右侧面标签),密码必须和DTU配置软件设置的密码相同(默认111111)。
2.SIM卡选择不对,必须选择移动或联通的SIM(部分联通卡不兼容,建议选用移动卡)。
3.SIM欠费。
4.网络信号差,DTU在信号强度低于15或误码率高于3时会出现掉线或无法联网的情况,最好保证信号强度在20以上误码率为0(可通过改变天线的安放位置调整信号强度,信号强度可通过DTU配置软件或平台模块远程配置中获得。)
6.2 如平台无法读取PLC的数据的原因。
1.PLC的Modbus-TCP服务器没有创建成功。此时我们可以通过Modscan32主站软件对PLC进行通讯测试,如果无法读取PLC的数据那么说明PLC的Modbus-TCP服务器没有创建成功。
2.接线问题,请确认使用的网线接头接线定义正确无虚接。
3.数据创建失败,检查数据规则中所创建的设备是否正确。
4,如果显示“数据未采集”,请检查模块的“远程配置”是否设置了Modbus采集通道,参考3.1.2中的设置。