串口连接西门子S7-1200/1500---MOBDUS协议


前言:西门子S7-1200PLC是一款优秀的可编程控制器,广泛应于工业控制领域,是一款性能高,运行稳定的控制器。此次我们要把S7-1200PLC通过modbus驱动连接到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)     河北蓝蜂科技的EG20网关一台,天线和电源适配器(以下用EG20作为实例)。
4)     SIM卡一张,有流量,大卡(移动、联通或电信卡)。
5)     联网电脑一台(WinXP/Win7/Win8/Win10操作系统)。
6)     电工工具,通讯线材等。

1.2 EG20准备工作

网关相关技术参数与使用说明,可参考《EG20用户使用手册》。
1、 保证网关可以正常联网,可通过4G卡(移动/联通/电信流量卡,大卡)联网(需接上随网关附带的天线)或通过网线联网(需将路由器出来的网线接到网关的WAN口);
2、 网关接12V或24V直流电源,上电。(注意,电源正负极不要接反)。

1.3 PLC准备工作

全部设备不接电源,取下S7-1200面板上下两个活动护板,将CB1241插入CB槽内。将网线插入PLC的PROFINET网口,另一端插入电脑网口。CB1241与EG20连接按下图连接,CB1241的T/RA和TA短接,一起接EG20的RS485B;CB1241的T/RB和TB短接,一起接EG20的RS485A。PLC上电(220VAC),EG20上电(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。
注1:MB_COMM_LOAD_DB指令块和MB_SLAVE_DB指令块详细使用说明请参考博图帮助文档,如下图,信息系统的路径是:“对PLC进行编程”→ “指令”→ “通讯(S7-1200,S7-1500)” → “通讯处理器(S7-1200,S7-1500)” → “MODBUS(RTU)(S7-1200)”
注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 (建议使用360浏览器极速模式、谷歌浏览器(Google Chrome)或者支持Chromium内核的浏览器),对EMCP云平台进行设置。具体操作参照《EMCP物联网云平台用户手册》。登录EMCP后首先进入设备列表显示页面,因为我们未创建任何设备,所以是一个空页面,我们需要按照以下步骤进行操作。

3.1 新增EG设备

步骤:点击【后台管理】(只有管理账号才有此权限)→【设备中心】→【设备管理】→【+新增】→    填写设备信息→点击【保存】。其中,【设备名称】必填,其余选项均可选填。

3.2 远程配置网关

EG设备管理网关配置中最主要两个地方需要配置,一是配置串口通讯参数,二是创建modbus驱动,下面分步骤对此功能进行讲解。注:网关只有在线后才可以进行远程配置。

3.2.1 网关绑定

步骤:点击【步骤②:网关、仪表管理】→【绑定网关】→填写【SN编号】和【验证码】→【确定】。
SN和验证码在网关的机壳标签上,SN为12位纯阿拉伯数字,验证码为6位英文字母,【备注】可以根据需求填写,编辑完成后点击【确定】。
 (带*必填项)
此时在“网关基本信息中”可以看到绑定的网关是否连接到平台(成功登录平台可以看到“在线”绿色字样,如果不成功则显示“离线”灰色字样,此时请检查网络或网络信号)。

3.2.2 通讯参数设置

使用串口RS485通讯,需设置RS485通讯参数。点击“通讯口配置”→“RS485配置”

3.2.3 创建设备驱动

在网关上连接的每一个设备,都需要建立对应的设备驱动。就像电脑上插了一个鼠标,只有电脑系统里安装了这个鼠标的驱动,电脑才能识别到这个鼠标。设备跟网关通过哪个通讯口连接,就在哪个通讯口下添加驱动。如图所示,点击【RS485】后面的【添加驱动】出现右侧基本配置表进行配置。
注:配置完成后,点击保存。
基本配置介绍:
【驱动名称】:必填项,自定义即可,当有多个驱动时进行区分。
【品牌】:必填项,选择“通用modbus设备”。
【型号】:必填项,选择“Modbus RTU”。
【设备地址】:必填项,设备地址根据1200PLC设置的从站号进行填写,本案例PLC从站号为“2”,所以此处填“2”。
【最小采集周期】:是网关采集设备数据的时间间隔,单位:ms。如设置1000ms,即网关1s采集一次设备数据。
【通讯等待时间】:网关接收通讯数据等待时间。可根据需要进行调整,默认1000ms。
【16位整型】、【32位整型】、【32位浮点型】:是指对应数据类型的解码顺序。默认设置即可
【分块采集方式】:0— 按最大长度分块:采集分块按最大块长处理, 对地址不连续但地址相近的多个分块,分为一块一次性读取,以优化采集效率;
                              1— 按连续地址分块:采集分块按地址连续性处理,对地址不连续的多个分块, 每次只采集连续地址,不做优化处理。直接选择默认即可。
【4区16位写功能码】:写4区单字时功能码的选择。直接选择默认即可。

3.2.4 添加变量

步骤:点击【步骤③:变量管理】→【+添加变量】→填写变量信息→【保存】。
变量介绍:
【仪表、PLC】:必填,选择刚才创建的驱动即可。根据实际情况选择。
【变量名称】:必填,自定义即可。注意不能有重复的名称。
【单位】:非必填,自定义即可。在列表展示时,变量会带上单位展示。
【寄存器类型】:必填,在西门子PLC中,Q点对应【线圈(0x)】,I点对应【离散量输入(1x)】,M区或DB块对应【保持寄存器(4x)】,AI区对应【输入寄存器(3x)】。
【寄存器地址】:必填,地址填写时不带寄存区标志符,具体对应设置见下方图片。
【数据类型】:必填,根据实际需要选择即可。
【小数位数】:非必填,根据需求填写。
【死区设置】:非必填,默认即可。根据需要填写即可。更详细的说明请参考后面“?”帮助。
【状态列表】:非必填。可将数值直接与文本映射。如值为“10”,映射字段为“设备故障”,则当采集到变量的值为“10”时,会直接在设备监控和历史报表中显示“设备故障”。
【数值运算】:非必填。可将采集到的数据根据填写的公式进行计算,更详细的说明请参考后面的“?”帮助。
【读写方式】:可根据需求自行修改该寄存器的读写方式,默认为只读。
PLC各寄存区变量在平台添加填写示例如下图所示:
添加完成后,【变量管理】如下图所示,此时可以点击【数据测试】按钮检查变量值能否采集到,或者值是否正确。

四、 实验效果

打开博图软件,将PLC转至在线,并且从监控表中监控当前PLC的数据,如下图:
用户登录EMCP平台(www.lfemcp.com),点击”S7-1200“设备的图片或设备名称进入设备即可查看、修改相关数据。
帮助中心 帮助中心
大约 1 年前
1755

扫描下方二维码手机阅读文章

4 0