1. 硬件列表
2. 组态和配置
1) 新建项目
2) 创建CPU300站点
3) 组态ET200S
4) 设置协议Modbus Master
3. 编写通信程序
1) 逻辑地址的填写
2) 调用通信功能块
3) 创建通信数据块DB块
4. 设备连接
5. 通信测试
1) 设置调试软件ModSim32
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_modbusM。
图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。双击以太网接口,进入以太网接口属性界面,分配IP地址,新建一个子网“PN/IE_1”。
图3 组态硬件
4、点击“网络视图”,可以看到新生成的子网“PN/IE_1”,从选件目录中找到正确的ET200S接口模块型号,将它拖拽到网络视图中。
图4 网络配置ET200S站
5、点击“未分配”,选择IO控制器“PLC_1.PROFINET接口_1”,为ET200S分配好IO控制器,同时自动为ET200S的以太网接口分配好一个IP地址,注:此时给ET200S分配了一个设备名称为“IO device_1”,且离线和在线的设备名称一定要一致,下面介绍如何修改设备名称。
图5 Profinet网络配置
如需离线修改该设备名称,可以进入ET200S模块的属性-〉以太网地址。
图6 离线修改ET200S的设备名称
如ET200S的实际设备名称与组态设置的不一致,也可以在线修改。右击网络“PN/IE_1”,点击“分配设备名称”,在线修改ET200S的设备名称。
图7 在线修改ET200S的设备名称
6、双击“IO device_1”,进入ET200S组态界面,将电源模块PM-E和ET200S 1SI串口模块组态到1、2槽。
图8 组态ET200S
7、双击1SI_1串口通讯模块,进入属性框,协议选择“Modbus Master”,波特率为9600,地址区为32字节。
图9 1SI_1选择Modbus Master协议
8、点击“报文”,进行报文设置,停止位:1,奇偶校验:无。
图10 报文设置
9、点击“接口”,接口选择“半双工(RS-485两线制模式)”,接收线路初始状态选择“信号R(A)0V/信号R(B)5V”。
图11 接口设置
10、点击“I/O地址”,记住输入和输出的起始地址292,这在通讯编程中需要用到。
图12 模块地址分配
1、双击“添加新块”,创建发送数据块DB10和接收数据块DB11,发送数据块的名称为Send,接收数据块的名称为Rev;如下图所示,发送数据块中新建几个变量,从站地址为2,功能码为3,起始地址为0,读4个寄存器数据,具体功能码3 的使用参见手册“Simatic ET200S 串行接口模块” 3.5章节的说明;如下图所示,接收数据块中新建1个数据类型Array的变量,数组元素的数据类型为Byte,数量为401。
图13 新建发送数据块
图14新建接收数据块
2、进入主程序OB1,从通信->通信处理器->ET200S串行接口,调用发送功能块S_SEND和接收功能块S_RCV。S_SEND的背景数据块为DB1,S_RCV的背景数据块为DB2。
图15 调用发送接收功能块
ET200S的发送功能块S_SEND的参数设置见下表。
管脚 |
解释描述 |
REQ |
发送数据触发位,上升沿触发,本例中为M0.5,见图14。 |
R |
取消通讯,本例中不用。 |
LADDR |
硬件组态中的起始逻辑地址,本例中为292,见图12。 |
DB_NO |
发送数据块号,本例中为10(DB10)。 |
DBB_NO |
发送数据的起始地址,本例中为0(DB10.DBB0)。 |
LEN |
发送数据的长度,本例中为MW12,本例中MW12赋值为6。 |
COM_RST |
如果为1,重新启动FB,本例中为M10.1。 |
DONE |
发送完成位,发送完成且没有错误时为TRUE。 |
ERROR |
错误位,为TRUE说明有错误。 |
STATUS |
状态字,标识错误代码,查看ET200S串行模块手册获得相应的说明。 |
ET200S的接收功能块S_RCV的参数设置见下表。
管脚 |
解释描述 |
EN_R |
使能接收位,本例中为M20.0,常闭点, 始终保持接收状态。 |
LADDR |
硬件组态中的起始逻辑地址,本例中为292,见图12。 |
DB_NO |
发送数据块号,本例中为11(DB11)。 |
DBB_NO |
发送数据的起始地址,本例中为0(DB11.DBB0)。 |
COM_RST |
如果为1,重新启动FB,本例中为M20.2。 |
NDR |
接收完成位,接收完成并没有错误为TRUE。 |
ERROR |
错误位,为TRUE说明有错误。 |
LEN |
接收数据的长度,只显示一个扫描周期,即:只有在接收到数据的当前周期,此值不为0。 |
STATUS |
状态字,标识错误代码,查看ET200S串行模块手册获得相应的说明。 |
图16 CPU时钟存储器设置
以RS485的方式接线为例说明,ET200S 模块按照RS485的接线方式连接到电脑的232口,连接示意图如下。
10302
图17 硬件结构和接线示意图
前面使用 TIA Step7 软件已经将通信ET200S的通信工作做完,下面进行通信测试。这里使用串口通讯测试软件ModSim32软件来测试ET200S和计算机的通信,步骤如下
1、双击ModSim32软件图标,新建项目,点击Port1,进入端口1做设置,本例计算机只有一个端口,所以就对端口1做设置,如果计算机有多个端口,要注意所选端口。
图18 新建从站测试项目
2、进入Port1设置界面,设置波特率、数据位、奇偶校验等参数,要和ET200S的参数相同。
图19 设置从站端口
3、点击“OK”,选择软件的03功能码界面,本例设置03功能码的10个数据,其中前4个数据分别设置成1—4。
图20 从站03功能码设置数据
4、首先将硬件配置和程序下载到CPU315-2PN/DP中,时钟脉冲信号M0.5从0跳变成1时,ET200S将数据发送出去。
图21 ET200S的 03功能码发送数据
5、M20.0为常闭点,程序下载完成,CPU运行后,就始终处于接收状态。在STEP7中打开接收数据块DB11监控接收到的数据,可以看到发送的数据被正确的接收。
图22 ET200S的 03功能码接收数据