西门子 S7-1200PLC 是一款的可编程控制器,广泛应于工业控制领域,是一款性能高,运行稳定的控制器。此次我们要把 S7-1200PLC 连接到 EMCP 物联网云平台(简称 EMCP),实现电脑 Web 网页、手机 APP 和微信对S7-1200PLC(MW1000、MW1002、I0.0)寄存器的远程监控和 MW1004 和Q0.0的远程读写。
一、准备工作。
1.1 在对接前我们需准备如下物品;
1) 西门子 S7-1200 PLC 一台,及通讯用 RJ45 网线。2) 西门子 CB 1241 RS485 模块。3) 河北蓝蜂科技的DTU 模块一台,天线和电源适配器(以下用 GM10-DTU 作为实例)。4) SIM 卡一张,有流量,大卡(移动或联通卡)。5) 联网电脑一台(WinXP/Win7/Win8/Win10 操作系统)。6) 电工工具,通讯线材等。
1.2 DTU 准备工作
此处参考《GM10-DTU 用户使用手册》进行操作,我们需要对 DTU 网关(WM10-DTU 网关的设置和 GM10 类似,以下均以 GM10-DTU 网关来介绍)连接天线、插上 SIM 卡(移动/联通流量卡,大卡)、连接 12V 或 24V 的电源适配器。
1.3 PLC 准备工作。
全部设备不接电源,取下 S7-1200 面板上下两个活动护板,将 CB1241 插入CB 槽内。将网线插入 PLC 的 PROFINET 网口,另一端插入电脑网口。CB1241 与 GM10 的连接按下图连接,既,CB1241 的 T/RA 和TA 短接,一起接GM10 的485B;CB1241 的T/RB和TB 短接,一起接GM10 的485A。PLC 上电(220VAC), GM10 上电(12VDC 或 24VDC)。
二,PLC的modbus从站创建。
步,使用西门子的《TIA Portal》(以下简称博途)软件,本文使用的软件版本是 V14。将 S7-1200
和 CB1241 进行设备组态,如下图:在设备组态中选择 S7-1200,在属性中的“系统和时钟存储器”,设置启用系统存储器字节,后面会用到,如下图:
第二步,在程序块中的 Main[OB1],添加 Modbus 通讯使能指令块“MB_COMM_LOAD_DB”和从站功能指令块“MB_SLAVE_DB”。在创建过程中会提示生成相应指令块的背景数据块,点确认进行生成。
注意:请使用指令中的“MODBUS”文件夹下的指令,不要使用“MODBUS(RTU)”中的指令。上面两张图中的指令设置的参数是:通过 RS485 通讯,波特率 9600,无奇偶校验,数据位数 8,停止位1;PLC 从站号为2,保持寄存器区域起始地址为MW1000,长度为10 个字,即为MW1000 到MW1018。
注 2:如果想要试用 MODBUS 访问全局数据块(DB),需要满足以下两个条件: 首先:数据块 DB 的属性中的优化访问必须取消;
然后:在 MB_SLAVE_DB 的寄存器指向中,使用指针指向该 DB 地址,如下图
上图设置的 MODBUS 从站参数是:通过 RS485 通讯,波特率 9600,无奇偶校验,数据位数 8,停止位 1;PLC 从站号为 2,保持寄存器区域起始地址为 DB3.DBW0,长度为 10 个字,即为 DB3.DBW0 到DB3.DBW9。第三步,将修改好的程序下载到 PLC 中,此处需要注意,一定要使用“在线(O)”选项中的“下载并复位 PLC 程序”。
三,EMCP平台设置。
用管理员账号登录EMCP 平台www.lfemcp.com(建议使用 IE9 以上浏览器或谷歌浏览器),对 EMCP 云平台进行设置。具体操作参照《EMCP 物联网云平台用户手册》。登录 EMCP 后首先进入设备列表显示页面,因为我们未创建任何设备,所以是一个空页面。点击右上角的“后台管理”按钮(只有管理账号才有此权限),进入EMCP 平台的后台。
3.1 远程配置DTU
打开“后台管理—>模块管理”页面,将 DTU 绑定至此管理员账号,然后就可以使用“远程配置”功能来配置DTU 的各项通讯参数和功能参数。主要两个地方需要配置,一是与 PLC 通讯的串口参数,二是设置DTU 定时采集PLC 数据的 MODBUS 通道参数,下面分步骤对此功能进行讲解。
3.1.2 模块远程配置
模块的远程配置好先“读取”再“写入”,只有写入成功后才表示该参数成功配置到 DTU 中,“写入”后也可以“读取”以检查之前的操作是否成功。如果不用模块 DI 报警点则无需进行“短信设置”。
设备从站号:为模块所连设备的 MODBUS 从站地址(范围 1-250),此地址必须和设备从站地址一样。要和PLC 设置的 MODBUS 从站号一致。
功能码:为模块读取设备 MODBUS 寄存区的标志符。“功能码 01”对应“线圈”(0XXXX),“功能码 02”对应“离散量输入”(1XXXX),“功能码 03”对应“保持寄存器”(4XXXX),“功能码 04” 对应“输入寄存器”(3XXXX)。西门子 PLC 中,Q 点对应 01 功能码,I 点对应 02 功能码,MB_SLAVE_DB的 MB_HOLD_REG 指向的区域对应 03 功能码(上文 PLC 程序指向的是 MW1000 到MW1018),AI 区对应 04 功能码。
起始地址:为模块所连设备的 MODBUS 寄存器读取的起始地址(不包含寄存区标识符)。图中 1 对应 40001。数据长度:为 DTU 读取设备数据的连续长度,图中的长度为 10,既连续读取从 40001 到 40010 共10 个数据。标准DTU 可连接多个从站(多 4 个),可点击“新建”创建新子设备从站,配置规则按上述说明。结合上文 PLC 从站的建立,这里读取的就是 40001 到 40010,也就是 40001 对应的 MW1000 到40010 对应的 MW1018,也即是上文中设置的西门子 1200PLC 内部的 MW1000 到 MW1019 寄存器中的数据。
注:当DTU 出现异常时,如无法连接网络在线,或者无法与PLC 正常通讯,此时可以使用配置口(默认 RS232)连接 PC,使用“DTU 配置软件”来查看状态及异常报警,详见《DTU 配置软件使用手册》。
3.2 新建数据规则
点击网页左侧的“数据规则”进入规则设置页面,点击右上角的“新增”,在弹出的窗口中设置该数据规则的名称“S7-1200”和展示样式“列表展示”,我们可以选择列表展示或组态展示,列表展示:我们所添加的数据会以固定的列表样式展示,列表展示方式简单方便(数据测试阶段可选用列表展示)。组态展示:我们可以任意绘制设备数据的展示样式比如添加图形、图片、仪表盘、柱状填充和文字等内容(此功能类似传统的组态软件可参考《EMCP 平台画面组态使用说明》文档)。数据规则新建完后点击“实时数据”新增实时数据(3.1.2 中设置的 Modbus 配置),点击“读写数据”创建平台对设备手动读写操作的数据。创建规则展示如下。
注:实时数据:是 DTU 根据所配置的 Modbus 采集通道(参考上面的 3.1 介绍),按设定的采集间隔定时读取从站数据并上传到平台所显示的内容;读写数据:无需在 DTU 配置 Modbus 定时采集通道,可直接通过平台对下位设备进行数据的手动读写操作;EMCP 平台所有"寄存器地址"设置均不需要带寄存器区标识符,如读写“保持寄存器”(03 功能
码)中 40019 的数据,在平台数据规则中的"寄存器地址"填写 19 即可(注:如果设备 Modbus 地址计数是从 0 开始的,则需要做加 1 处理,即填写 20) 。
报警设置,在创建好的实时数据中,点击“报警”选项,进入报警设置页面。我们可以设定该数据的报警上下限和报警内容以及是否启用此报警。设定报警后当该数据超出报警上下限后平台会自动记录报警的时间和报警值,同时平台会向用户登录的 APP 或微信推送报警消息。
3.4 新建设备
新建“设备”, 选择菜单“设备管理”-> “新增”新建一个设备“西门子 S7-1200 ”。新建设备是填写设备的基本信息,1 选择设备匹配的图片(从本地上传,也可不选择,系统会以默认图片显示);2 输入模块 SN,输入要绑定的 SN 的编码,如果此SN 之前未绑定,则会弹出绑定窗口进行绑定;3 选择上面创建的数据规则;4 点击“地图”按钮选择设备所在的地理位置。完成后点击“保存”。