一准备工作。
1.1在对接前我们需准备如下物品;
1)S7-200 一台(建议使用CPU226 或 CPU224 有两个串口的PLC,port1口做程序的下载和在线监视,port0做Modbus-RTU从站与GM10-DTU模块通讯)。也可以使用Smart200PLC(以下以老款200PLC做案例解说)。
2)河北蓝蜂科技的DTU模块一台,天线和电源适配器(以下用GM10-DTU作为实例)。
3)SIM卡一张,有流量,大卡(移动或联通卡)。
4)DP9针公头一个。
5)联网电脑一台(WinXP/Win7/Win8操作系统)
6)电工工具、导线若干。
物料准备如下;
1.2 DTU准备工作
此处参考《GM10-DTU用户使用手册》进行操作,我们需要对DTU网关(WM10-DTU网关的设置和GM10类似,以下均以GM10-DTU网关来介绍)连接天线、插上SIM卡(移动/联通流量卡,大卡)、连接12V或24V的电源适配器。
1.3 S7-200PLC准备工作。
200PLC连接电源(注意电源是24VDC还是220VAC),准备一颗9针串口头(如上图),用两颗导线分别焊接的3和8引脚(200PLC系统手册中有介绍,3和8引脚为485通讯口)。此时我们将PLC prot0串口的3引脚连接GM10模块的“48*”端子,8引脚连接GM10模块的“485B”端子。
二,200PLC从站创建。
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”软件中的帮助。
上面我们将 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平台设置。
用管理员账号登录EMCP平台www.lfemcp.com (建议使用IE9以上浏览器或谷歌浏览器),对EMCP云平台进行设置。具体操作参照《EMCP物联网云平台用户手册》。登录EMCP后首先进入设备列表显示页面,因为我们未创建任何设备,所以是一个空页面。点击右上角的“后台管理”按钮(只有管理账号才有此权限),进入EMCP平台的后台。
3.1远程配置DTU
打开“后台管理—>模块管理”页面,将DTU绑定至此管理员账号,然后就可以使用“远程配置”功能来配置DTU的各项通讯参数和功能参数。*主要两个地方需要配置,一是与PLC通讯的串口参数,二是设置DTU定时采集PLC数据的MODBUS通道参数,下面分步骤对此功能进行讲解。注:模块只有在线后才可以进行远程配置,也可以使用“DTU配置软件”对模块配置,参考文档《DTU配置软件使用手册》。
3.1.1模块绑定
模块初始绑定密码是111111,直接点击绑定即可。
3.1.2 模块远程配置
模块的远程配置**先“读取”再“写入”,只有写入成功后才表示该参数成功配置到DTU中,“写入”后也可以“读取”以检查之前的操作是否成功。如果不用模块DI报警点则无需进行“短信设置”。
设备从站号:为模块所连设备的MODBUS从站地址(范围1-250),此地址必须和设备从站地址一样。要和PLC设置的MODBUS从站号一致。
功能码:为模块读取设备MODBUS寄存区的标志符。“功能码01”对应“线圈”(0XXXX),“功能码02”对应“离散量输入”(1XXXX),“功能码03”对应“保持寄存器”(4XXXX),“功能码04”对应“输入寄存器”(3XXXX)。西门子PLC中,Q点对应01功能码,I点对应02功能码,V区对应03功能码,AI区对应04功能码。
起始地址:为模块所连设备的MODBUS寄存器读取的起始地址(不包含寄存区标识符)。图中1对应40001
数据长度:为DTU读取设备数据的连续长度,图中的长度为10,既连续读取从40001到40010共10个数据。
标准DTU可连接多个从站(*多4个),可点击“新建”创建新子设备从站,配置规则按上述说明。
结合上文PLC从站的建立,这里读取的就是 40001到40010,也即是西门子200PLC内部的VW1000到VW1019寄存器中的数据。
注:当DTU出现异常时,如无法连接网络在线,或者无法与PLC正常通讯,此时可以使用配置口(默认RS232)连接PC,使用“DTU配置软件”来查看状态及异常报警,详见《DTU配置软件使用手册》。
3.2 新建数据规则
点击网页左侧的“数据规则”进入规则设置页面,点击右上角的“新增”,在弹出的窗口中设置该数据规则的名称“S7-200PLC”和展示样式“列表展示”,我们可以选择列表展示或组态展示,列表展示:我们所添加的数据会以固定的列表样式展示,列表展示方式简单方便(数据测试阶段可选用列表展示)。组态展示:我们可以任意绘制设备数据的展示样式比如添加图形、图片、仪表盘、柱状填充和文字等内容(此功能类似传统的组态软件可参考《EMCP平台画面组态使用说明》文档)。数据规则新建完后点击“实时数据”新增实时数据(3.1.2中设置的Modbus配置),点击“读写数据”创建平台对设备手动读写操作的数据。创建规则展示如下。
注:实时数据:是DTU根据所配置的Modbus采集通道(参考上面的3.1介绍),按设定的采集间隔定时读取从站数据并上传到平台所显示的内容;
读写数据:无需在DTU配置Modbus定时采集通道,可直接通过平台对下位设备进行数据的手动读写操作;
EMCP平台所有 寄存器地址 设置均不需要带寄存器区标识符,如读写“保持寄存器”(03功能码)中40019的数据,在平台数据规则中的 寄存器地址 填写19即可(注:如果设备Modbus地址计数是从0开始的,则需要做加1处理,即填写20) 。
报警设置,在创建好的实时数据中,点击“报警”选项,进入报警设置页面。我们可以设定该数据的报警上下限和报警内容以及是否启用此报警。设定报警后当该数据超出报警上下限后平台会自动记录报警的时间和报警值,同时平台会向用户登录的APP或微信推送报警消息。 |