硬件列表
表1 实验所需硬件列表
2 组态和配置
1、打开软件TIA PORTAL STEP7 V16,点击项目-》新建。..创建一新项目,项目名称为S7-1500_ET200S_ASCII。
图1 新建项目
2、用鼠标点击“添加新设备”,选择SIMATIC S7-1500-》CPU-》CPU 1518-4 PN/DP-》6ES7 518-4AP00-0AB0。
图2 添加站点CPU 1518-4PN/DP
3、双击“设备组态”进入设备视图。双击以太网接口,进入以太网接口属性界面,新建一个子网“PN/IE_1”,并分配IP地址。
图3 组态硬件
4、点击菜单栏“在线”-》“硬件检测”-》“网络中的PROFINET设备”,在线检测所连接的ET200S站点,如图4所示。
图4 在线检测ET200S站
在弹出的“PROFINET 设备的硬件检测”窗口内勾选搜索到的ET200S站点,并点击添加设备。
图5 添加ET200S站
5、设备添加成功后,在“网络视图”内,可以看到新添加的ET200S站。另外,用户也可以从选件目录中找到正确的ET200S接口模块型号,将它拖拽到网络视图中,添加模块时需要注意组态的模块版本应与实际一致。
图6 添加ET200S站法二
6、点击ET200S站左侧“未分配”,选择IO控制器“PLC_1.PROFINET接口_1”,为ET200S分配好IO控制器。
图7 Profinet网络配置
同时为ET200S的以太网接口分配好IP地址,注:此时给ET200S分配了一个设备名称为“im151-3pn”(该名称不唯一,以实际项目为准),确保离线和在线的设备名称一致。
下面介绍如何修改设备名称。如需离线修改该设备名称,可以进入ET200S模块的属性-〉以太网地址。
图8 离线修改ET200S的设备名称
下面介绍如何在线分配IO设备名称。如ET200S的实际设备名称与组态设置的不一致,也可以在线修改。右击网络“PN/IE_1”,点击“分配设备名称”,在线修改ET200S的设备名称。
图9 分配设备名称
确保ET200S的设备名称的状态是“确定”,如果出现不一致的情况,选择问题站点后点击“分配名称”,确保该站点最后的状态是“确定”,如下图所示。
图10 确认ET200S设备名称在线与离线一致
7、双击“im151-3pn”,进入ET200S组态界面,(自动检测已经将电源模块PM-E和ET200S 1SI串口模块组态到1、2槽;手动组态时需要用户手动从选件目录中拖拽添加),双击1SI_1串口通信模块,进入属性框,协议选择“ASCII”,波特率为9600,地址区为32字节。
图11 1SI_1选择ASCII协议
8、点击“报文”,进行报文设置,数据位:8,停止位:1,奇偶校验:无。
图12 报文设置
9、点击“接口”,接口选择“半双工(RS-485两线制模式)”,接收线路初始状态选择“信号R(A)0V/信号R(B)5V”。
图13 接口设置
3 编写通信程序
1、双击“添加新块”,创建发送数据块DB10和接收数据块DB11,这2个数据块中分别新建1个数据类型Array的变量,数组元素的数据类型为Byte,数量为401;发送数据块中的变量名称为Send,接收数据块中的变量名称为Rcv。
图14 新建发送接收数据块
1.注意以上两个DB块,右键其属性对话框,一定要确保“优化的块访问”参数未勾选。
2、进入主程序OB1,从通信-》通信处理器-》ET200S串行接口,调用发送功能块S_SEND和接收功能块S_RCV。S_END的背景数据块为DB3,S_RCV的背景数据块为DB4。
图15 调用发送接收功能块
1SI串口模块的发送与接收功能块的参数设置见以下表格。
表2 发送功能块S_SEND 参数表
表3 接收功能块S_RCV 参数表
4 设备连接
以RS485的方式接线为例说明,ET200S 1SI 模块按照RS485的接线方式连接到电脑的USB口,连接示意图如下。
图16 硬件结构和接线示意图
5 通信测试
使用串口调试软件来测试ET200S 1SI和计算机的通信,步骤如下。
1、1SI串口模块发送数据到SSCOM32
1.将硬件配置和程序下载到CPU1518-4PN/DP中
2.设置需要发送的数据长度MW2=10(字节)
3.将DB10中前10个字节设为十六进制的01 02 03 04 05 06 07 08 09 0A
4.当M0.0从FALSE置成TRUE上升沿时,1SI串口模块将发送数据,可以从SSCOM32接收窗口中看到收到的数据(十六进制),如下图所示。
图17 ET200S 1SI发送数据调试软件接收数据测试结果
2、1SI串口模块从SSCOM32接收数据
M1.0为常闭点,程序下载完成,CPU运行后,就始终处于接收状态。
1.在计算机上打开软件SSCOM32,在字符输入窗口输入16进制数据10111213141516171819,然后点击发送按钮发送数据。
2.在TIA STEP7中打开接收数据块DB11监控接收到的数据,可以看到SSCOM32发送的数据被正确的接收。
图18 ET200S 调试软件发送数据1SI接收数据测试结果
6 常见问题
1.为什么程序下载后,CPU突然不能正常启动,并报错“编程错误(OB启动事件)”和“FB97中的区域长度错误”?
如下图所示,CPU切换为STOP模式,报错“编程错误(OB启动事件)”和“FB97中的区域长度错误”。
图19 ET200S 调试软件发送数据1SI接收数据测试结果
可能的原因是:发送或者接收的数据块(例中DB10或者DB11)是优化的DB块,那么在执行发送或者接收操作时会报以上错误,并且CPU停机,所以务必注意该DB块的属性必须是非优化的,如图14。
1.为什么发送或者接收指令块报错“16#1E0E”?
可能的原因是:发送或者接收功能块的“LADDR”管脚设置错误,正确的应该设置该模块的硬件标识符,而不是模块的I/O起始地址,具体查找步骤参考下表。
表4 模块硬件标识符查找方法
方法一方法二
审核编辑:郭婷
-
以太网
+关注
关注
40文章
5334浏览量
170698 -
cpu
+关注
关注
68文章
10796浏览量
210701
原文标题:S7-1500系统内使用ET200S 1SI模块实现自由口通信
文章出处:【微信号:gh_a8b121171b08,微信公众号:机器人及PLC自动化应用】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论