产品线频道   >
机器人| PLC| 低压变频器| DCS| 人机界面| 现场总线| 运动控制| 高压变频器| 电机| PAC| 现场仪表| PC-BASED| 机械传动| 传感器

基于S7-300PLC的电力系统CDT规约的解析(3)

  • 作者:不详
  • 阅读人次:
  • 发布时间:2012-06-15

由于300PLC处理数据的时间远比rtu传送来数据的速率要快。因此不会存在rtu传送的数据出现覆盖情况。在db20中建120个字节作为cpu接收rtu数据的缓冲区,因为cdt规约中无论是同步字、控制字还是信息字均为6个字节长,因此数据缓冲区可以存20个字。数据接收块(rcv_data)对来自rtu数据的接收,并转存到数据缓冲区db20中。处理数据块(check_6byte)是为了判断db20中的数据是否有六个字节,如果有6个字节则置位“需要处理位”(istransneeded),为下面查找同步字打开通路;如果没有6个字节则结束子程序功能块,等待plc下个扫描周期对数据的接收。

7.3同步字查找

当以上程序判断出数据缓冲区中有大于6个字节的数据,将会调用同步字查找块(check_eb90)。对取回的数据进行处理首要问题就是要找到同步字,可依次取出六个字节,并判断它们是否为同步字(三eb90h)。若不是,则丢掉第一个字节,同时再取出随后的那个字节,再次进行判断。每个plc的扫描周期都要重复这样的过程,直到找到同步字为止。当找到两个同步字,将同步字之间的数据转存到控制、信息字db区,并置位“需要帧处理”标志位(isframetrans)。

7.4控制字处理

isframetrans为1时,程序将跳到控制字处理块(contrw_trans),即开始数据帧的控制字处理。首先,取出6个字节,并调用crc校验块对其进行crc8校验,若校验正确,则说明这6个字节即为控制字,从控制字的第三个字节可得到该数据帧的信息字字数,存入变量info_len;根据控制字的第二个字节帧类别置位不同的标志位,以便信息字处理块取出不同的遥测遥信以及遥控返校信息;最后置位信息字处理标志位(isinfotrans)。若不正确,则复位“需要帧处理”标志位(isframetrans)重新开始寻找同步字。

7.5信息字的解析

根据控制字处理块所提供的帧类别和取出的信息字总长度info_len,就可以开始信息字的解析,每次还是取出六个字节,调用crc校验块对其进行crc8校验。若校验错误,则丢掉这一信息字,接着取出下一个信息字进行解析。若校验正确则说明该信息字有效。根据帧类别去处理不同的信息字,信息字中的第一个字节为功能码,通过功能码可以确定这一个信息字的具体意义,这样就可以把信息字中的信息数据取出来转存到plc的某个特定存db区内。不管crc8校验是否正确,都对已处理信息字进行计数,当计数值与信息字总长度info_len相同时即说明该数据帧已经全部解析完,并复位信息字处理标志位(isinfotrans)。接下来应该是下一帧的同步字,根据上面步骤继续处理rtu传来的数据帧。

分享到
【文章来自米尔自动化网http://www.mirautomation.com/pages/2012-06/s36279.shtml
本文标签: S7-300   PLC   CDT规约  
 三菱电机

热门内容:
工业机器人 S7-200 S7-300 PLC编程入门 自动化产品 DCS控制系统 变频电机 工控机 可编程自动化控制器 温度传感器 HMI