[西门子] PROFIBUS 的“自由第二层”协议通讯过程的实现

[复制链接]
查看166 | 回复0 | 2024-10-9 09:33:52 | 显示全部楼层 |阅读模式
>




本文通过配置编程,实现一台314C-2DP和一台314C-2PtP通过CP342-5和CP343-5之间的自由第二层协议的通讯:使用的软件版本为STEP 7 v5.5,硬件为S7-300的 314C-2PTP(v2.6)和314C-2DP(v2.6)以及CP342-5。


快速找文档,小西来帮忙!自助解决技术问题点这里 智能小西

售后服务需求点这里 售后服务


1.硬件组态


首先根据系统的配置在STEP7中创建两个Project,在Hwconfig窗口中分别进行硬件组态:

图1 硬件组态

插入CP342-5时,需要创建PROBUS Networked,并在Operating Mode标签页中选择No DP方式:

图2 网络设置

图3 模式设置





2.网络组态


在两个Project中分别组态完成后,点击NetPro按钮,打开总线网络配置窗口:

图4 网络组态

在网络配置窗口中,点击鼠标右键插入一个Connection:

图5 建新连接

图6 插入FDL连接

选择Unspecified和FDL Connection链接模式后,点击Apply键弹出Connection属性窗口,注意该窗口中ID和LADDR参数对应的数值,要和后面编写的FC5和FC6所填写的值一致:

图7 参数信息

在Addresses标签页中选中Free Layer2选项,并且记住PROFIBUS站址和LSAP值,这两个值要填写在发送数据的前两个字节当中:

图8 地址设置

点击OK键,连接创建完成,并进行硬件的存盘,编译,下载,在进行二号站NetPro中自由第二层协议链接的创建:

图9 第二个站点组态





3.软件编程

硬件组态和网络链接完成后,分别在两个Project中的两个站当中的OB1里插入AG_SEND(FC5)和AG_RECV (FC6)程序块:

图10 编写程序

分别在两个站当中插入收发数据区DB1(Send_Data)和DB2(Receive_Data),并且在DB1的第一个字节当中填写对方的PROFIBUS地址,第二个字节当中填写对方的LSAP数值,第三,四字节空出不用,从第五个字节开始填写要发送的字节,并注意这里采用十六进制的表达方式,所以上面设定的18,应该是B#16#12:

图11测试结果

在变量表中置位发送使能位M11.0:

图12 变量监控

在线监视程序的运行情况如下:

图13 程序监控

在二号站的DB2中我们可以得到所收到的数据:

图14 数据监控

在下载配置的硬件组态时,您应当注意所有硬件的MPI、PROFIBUS地址不能一样,否则会出现下载、运行及通讯异常:

图15 下载需要注意地址

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册哦

x
您需要登录后才可以回帖 登录 | 注册哦

本版积分规则