发布于 2012-02-22 11:37:31
146楼
在Siemens的可变速传动装置(例如:SIMOREG 6RA70 装置或Simovert Masterdrives VC & MC系列)与PLC之间应用Profibus_DP进行数据通信时,采用的是PPO机制(应用PROFIdrive行规),其中过程数据通道PZD的通信是比较容易处理的,但是涉及参数通道PKW的通信是比较难的,著者做过一些研究工作,取得了比较好的效果。
编写程序中要用到指针寻址的概念:思路如下
* 首先要建立通信用缓冲数据块(DBxx),用数据结构的形式(PKE、INDEX、PWE1、PWE2)保存需要读/写的参数报文(这一数据结构是与PKW的定义一致的),需要完成多少个参数读/写,就要建立多少个这样的报文结构,每个报文结构的地址相差8个字节。
* 建立一个功能程序(FCxx),应用地址寄存器AR2指向DBxx的第1个报文结构首地址,读响应报文(请求报文是在上一个周期末发出的),当响应报文的PNU(参数号)和INDEX(数组变址号和页面号)与发送的请求报文的PNU和INDEX完全一致时,说明发出的请求已经得到响应,然后可以将AR2的地址加8,指向新的参数报文,否则说明还没有读到响应报文,AR2的地址不变,重复循环。在AR2加8后,在FCxx程序的最后部分,发送对新的报文结构的请求报文,程序的开始部分读响应报文,以后重复这样的过程,直到DBxx中所有的报文结构都处理完,再将AR2的地址指向DBxx的第1个报文结构。
FCxx中还包含参数的处理,例如,读得参数的保存,参数修改值的赋值,程序执行超时或出错的处理等。
* FCxx放置在OB1或OB35中调用。
详细的程序和例子,请参阅著者的著作“可变程序控制器与工业现场总线”(机械工业出版社2010年第1版,2012年3月将出第2版,见第2版第5章)
本人是从事自动化工程数十年的老工程师,愿与Siemens的专家们探讨学习。谢谢!