西门子淄博PLC模块授权代理商
初始化主要针对主站而言。在初始化阶段主要完成CP模块的参数化、初始化轮询计数器,复位接收缓冲区以及根据轮询计数器生成发送数据帧等方面的工作。
? 主站轮询流程
如下图所示,在系统初始化完成后,手动启动次轮询作业,本实例先轮询1#从站。给1#从站发送查询请求后,等待1#从站的响应,如果在的延时时间内接收到1#从站返回的数据,则给2#从站发送查询请求,并等待2#从站的响应,同样如果在的延时时间内接收到2#从站返回的数据,则一次完整的轮询结束,自动启动新一轮的轮询。
如果在的延时时间内不能接收到从站的返回数据或接收错误,则跳过本站,开始轮询下一个站点。
图8 主站轮询流程图
? 从站响应流程
从站根据主站的请求做出响应,主要是在接收到网络上的数据后,判断是否是给自己的数据。如果是,则将数据接收到的数据区,同时启动发送功能,发送相应的返回数据给主站;如果不是,则直接删除收到的数据,并不做任何响应。
图9 从站响应流程图
3 程序实现
接下来我们就可以根据上述轮询思想,通过编写STEP7程序具体实现主站轮询从站的功能。由于主站、从站任务的不同,所以在程序上的实现上也有所不同,下面针对主站和从站的程序实现做个简要描述。具体的例程可以参考本文附带的样例程序。
3.1 主站程序
3.1.1 初始化
为了实现对多个从站的轮询,程序构造了一个轮询计数器,通过修改轮询计数器的值,来修改主站发送数据帧中的站地址标识字符。
本例中定义MW2作为轮询计数器,程序开始,先对轮询计数器进行操作,默认先轮询1#从站,将值1赋值给MW2。
图10 初始化轮询计数器程序段
在程序执行过程中,会修改轮询计数器的值,通过判断轮询计数器的值对发送数据块的地址标识符字作相应的修改,以完成对响应从站的轮询。本例中具体的实现如下图,其中DB13作为发送数据块,DB13.DBW0为地址标识符字。
图11 生成地址标识符程序段