1. 硬件列表
2. 组态和配置
1) 新建项目
2) 创建CPU300站点
3) 组态ET200S
4) 设置协议Modbus Slave
3. 编写通信程序
1) 逻辑地址的填写
2) 调用通信功能块
3) 创建通信数据块DB块
4. 设备连接
5. 通信测试
1) 设置调试软件Modscan32
2) ET200S与调试软件测试通信数据
设备名称 |
设备型号 |
PS 307 |
6ES7 307-1EA01-0AA0 |
CPU 315-2PN/ DP |
6ES7 315-2EH14-0AB0 |
MMC |
6ES7 953-8LG30-0AA0 |
ET200S接口模块 |
6ES7 151-3BA60-0AB0 |
PM-E电源模块 |
6ES7 138-4CA01-0AA0 |
ET200S 1SI串口模块 |
6ES7 138-4DF11-0AB0 |
1、打开软件TIA PORTAL STEP7 V13,点击项目->新建...创建一新项目,项目名称为ET200S_modbusS。
图1 新建项目
2、用鼠标点击“添加新设备”,选择SIMATIC S7-300->CPU->CPU 315-2PN/DP->6ES7 315-2EH14-0AB0。
图2 添加站点CPU 315-2PN/DP
3、双击“设备组态”进入硬件组态界面,导轨RACK和CPU 315-2PN/DP已经存在,只需要插入PS307。
图3 组态硬件
4、点击“网络视图”,可以看到新生成的子网“PN/IE_1”,从选件目录中找到正确的ET200S接口模块型号,将它拖拽到网络视图中。
图4 网络配置ET200S站
5、点击“未分配”,选择IO控制器“PLC_1.PROFINET接口_1”,为ET200S分配好IO控制器,同时自动为ET200S的以太网接口分配好一个IP地址,注:此时给ET200S分配了一个设备名称为“IO device_1”,且离线和在线的设备名称一定要一致,下面介绍如何修改设备名称。
如需要修改ET200的离线和在线的设备名称,可以参见“2.1.2 ET200S 使用 TIA Step7 V13 进行 Modbus Master 通讯”中的图6和图7。
图5 Profinet网络配置
6、双击“IO device_1”,进入ET200S组态界面,将电源模块PM-E和ET200S 1SI串口模块组态到1、2槽。
图6 组态ET200S
7、双击1SI_1串口通讯模块,进入属性框,协议选择“Modbus Slave”,波特率为9600,地址区为32字节。
图7 1SI_1选择Modbus Slave协议
8、点击“报文”,进行报文设置,停止位:1,奇偶校验:无。
图8 报文设置
9、点击“接口”,接口选择“半双工(RS-485两线制模式)”,接收线路初始状态选择“信号R(A)0V/信号R(B)5V”。
图9 接口设置
10、点击“I/O地址”,记住输入和输出的起始地址,这在后面的通讯编程中需要用到。
图10 模块地址分配
1、双击“添加新块”,创建数据块DB10,如下图所示,按照图中所示,设置各个变量的启动值。注:有关每个变量的含义,可以参考手册“SIMATIC ET200S 串行接口模块”的3.6.3章节和3.6.18章节。
举例说明:F01_MOD_STRT_ADR_1表示设置功能码01、05、15的Modbus起始地址,本例中设置为16#0,即表示00001;F01_MOD_END_ADR_1表示设置功能码01、05、15的Modbus终止地址,本例中设置16#ff,即表示为00256;F01_CNV_TO_FLAG_A表示设置PLC的M地址的起始地址,本例设置为16#0,即表示M0.0,说明M0.0与00001是对应关系,往下依次类推。
举例说明:FC03_06_16_DB_NO表示设置与功能码03、06、16的Modbus地址对应的DB 块,本例中设置16#B,即表示DB11,说明DB11.DBW0与40001是对应关系,往下依次类推。
再创建2个数据块,如下图所示,DB11(命名FC03、06、16)、DB12(命名FC04),这2个数据块都创建1个数据类型Array的变量,数组元素的数据类型为Word,数量为200。注:DB11的数据变量用于功能码03、06、16;DB12的数据变量用于功能码04。用于下面的测试。
图11 新建3个数据块
2、进入主程序OB1,从通信->通信处理器->ET200S串行接口,调用能块S_MODB。
图12 MODBUS Slave功能块
关于功能块S_MODB的管脚说明,请见表2。
LADDR |
硬件组态中的起始逻辑地址,本例中为292,见图4-10 |
START_TIMER |
超时初始化定时器,本例中为T0 |
START_TIME |
超时初始化时间值,本例中为S5t#5s |
DB_NO |
地址映射DB块,本例中为DB10 |
OB_MASK |
外设访问错误屏蔽位,本例中为M200.0 |
CP_START |
FB初始化始能位,该位需要置1。本例中为M200.1 |
CP_START_FM |
CP_START初始化的上升沿位,本例中为M200.2 |
CP_START_NDR |
从CP写操作位,本例中为M200.3 |
CP_START_OK |
初始化成功标志,本例中为M200.4 |
CP_START_ERROR |
初始化失败标志,本例中为M200.5 |
ERROR_NR |
错误号,本例中为MW202 |
ERROR_INFO |
错误信息,本例中为MW204,可以查看“Simatic ET200S串行接口模块”手册,第3章节 |
表2 ET200S功能块S_MODB的参数设置表
以RS485的方式接线为例说明,ET200S 模块按照RS485的接线方式连接到电脑的RS232口,连接示意图如下。
图13 硬件结构和接线示意图
1、将项目程序在线,本示例中手动将M200.1(即:CP_START)置1,M200.2(即:CP_START_FM)和M200.4(即:CP_START_OK)也会为1。
图14 CP_START管脚置1情况
2、首先将硬件配置和程序下载到CPU315-2PN/DP中。在计算机上打开MODBUS主站仿真软件Modscan32。
图15 打开Modscan32软件
3、点击Modscan32上的Connection->Connect,显示画面如下,选择计算机和ET200S相连的COM口COM1,设好波特率,数据位,停止位,校验方式,注:这些设置要与1SI_1的设置一致,如下图。
图16 Modscan32通信参数设置
4、设置完成,点击OK,显示画面如下。
图17 Modscan32操作界面
5、数据显示区的10个地址的数据对应CPU中DB11和DB12的前5个字的数值,如下图,给这5个字赋值。
图18 DB11和DB12数据赋值监控
6、Modscan32软件界面03的地址40001~40005分别显示1~5的数据,04的地址30001~30005分别显示11~55的数据。
图19 Modscan32软件03功能码通信
图20 Modscan32软件04功能码通信