西门子模块6ES322-5HF00-0AB0
程序实现
接下来我们就可以根据上述轮询思想,通过编写STEP7程序具体实现主站轮询从站的功能。由于主站、从站任务的不同,所以在程序上的实现上也有所不同,下面针对主站和从站的程序实现做个简要描述。具体的例程可以参考本文附带的样例程序。
3.1 主站程序
3.1.1 初始化
为了实现对多个从站的轮询,程序构造了一个轮询计数器,通过修改轮询计数器的值,来修改主站发送数据帧中的站地址标识字符。
本例中定义MW2作为轮询计数器,程序开始,先对轮询计数器进行操作,默认先轮询1#从站,将值1赋值给MW2。
图10 初始化轮询计数器程序段
在程序执行过程中,会修改轮询计数器的值,通过判断轮询计数器的值对发送数据块的地址标识符字作相应的修改,以完成对响应从站的轮询。本例中具体的实现如下图,其中DB13作为发送数据块,DB13.DBW0为地址标识符字。
图11 生成地址标识符程序段
3.1.2 启动发送
初始化完成后,可以启动发送功能。本例次发送采用手动方式,通过触发手动启动标志位M30.1,并调用FB8 P_SND_RK发送数据到从站。完成次发送后,可以通过程序自动修改自动轮询标志位M30.0来实现自动发送数据到从站的功能,具体的FB8 P_SND_RK功能块使用参考CP341手册。
启动发送功能块FB8后,通过FB8返回状态信息,判断是否发送完成,如果发送错误,则重新启动发送功能。
? 发送完成:启动接收作业,准备接收从站返回数据。同时启动一个超时定时器T11,如果超时定时时间到,还没有接收到数据,则放弃等待,开始轮询下一个站。
图12 发送功能块程序段
3.1.3 接收从站返回数据
发送完成后,启动接收作业,准备接收从站返回数据,并将接收到的数据先放到接收缓冲区中,本例DB14数据块为接收缓冲区。
图13 接收功能块程序段
3.1.4 接收完成西门子PLC卡件6ES7317-2EK14-0AB0
接收完成后,做如下几方面处理。如果接收错误或超时,则跳过此站的轮询。
? 根据接收到数据的地址标识符判断是来自哪个从站的数据,并将数据从接收缓冲区转移到的从站数据存储区中,同时清空接收缓冲区;
? 复位接收标志,同时修改轮询计数器的值,准备轮询下一个从站;
? 复位超时定时器;
? 启动一个延时定时器,延时时间到后开始轮询下一个从站。
图14 接收完成处理程序段
图15 准备轮询下一个站程序段
3.2 从站程序
相对于主站,从站的处理程序相对简单。下面以2#从站为例做个说明,1#从站除了调用FB不同外,都与2#从站相同。
3.2.1 接收数据
从站一直启动接收功能FB2 P_RCV,接收来自网络上的数据,如果接收到数据则根据地址标识符判断是否是本站的数据:
? 是本站数据,则将接收缓冲区(DB17)中的数据移到的地址区(DB18)中,并清空接收缓冲区。同时,触发发送标志,发送返回数据给主站;
? 不是本站数据,直接清空接收缓冲区(DB17)。
图16 从站接收程序段
图17 从站接收完处理程序段
3.2.1 发送返回数据
接收完成后,调用发送功能,将DB19的数据发送给主站。
图18 从站发送响应程序段
3.3 实验结果
搭建好网络,并将程序分别下载到各自的CPU中,启动CPU的运行。通过置位手动启动轮询标志位M30.0即可启动轮询程序的运行。通过变量表可以监视到系统的运行情况,可以看到,主站会循环地将数据发送到两个从站,同时也循环地接收来自从站的返回数据,如下图所示。
图19 系统运行监控图
4 应用小结
通过本应用实例,可以看到基于ASCII驱动协议的多站点轮询原理比较简单。同时因为其较大的灵活性,所以可以与各种满足ASCII协议的设备进行通信。西门子串行通信模块CP340、CP341、CP440-1、CP441-1/2、CPU313C/314C-2PtP以及ET200S的1SI 3964/ASCII等都集成有ASCII驱动协议功能,可以根据需求灵活地选择这些产品。
本文所述应用和提供例程只作为相关应用的参考,在实际的应用中,应该充分考虑通信伙伴的特点和实际需求,结合不同的轮询方式、错误处理机制、校验方法、数据处理方法等手段达到通信目的。
郑重声明:本文的虚拟工程与真实工程实例有重大差别,示例中并未遵循规范的工程设计流程进行编程,请读者切勿将其与工程实例相混淆;由于此例子是免费的,任何用户可以免费复制或传播此程序例子。程序的作者对此程序不承担任何功能性或兼容性的责任,使用者风险自负;西门子不提供此程序例子的错误更改或者热线支持;为了更好的使用这些模板,建议用户仔细阅读相关模板的使用手册
1. 项目基本信息 Basic Project Information 制药机械、SMART plc ST20、V20变频器、V90伺服电机和驱动、SMARTLINE触摸屏。 2. 问题描述 Problem Description 故障现象:新设备安装完成后上电运行, PLC运行正常,用户正常试机操作,大约一分钟后变频器报F72通信故障,监控PLC程序后发现USS通信块故障代码1--驱动器无响应。重新下载程序和复位驱动器故障均无效。客户工程师更换新的PLC后又能正常运行,但是一分钟左右之后再次出现同样问题,连续更换三台ST20 现象都一致。 系统构成:
|