由于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传来的数据帧。
台达DOP-W系列提供10.4”/12”/15&rdqu…
JetNet 3005G · 5口全千兆RJ-45交换机 …
显示规格 一般规格 环境规格 结构规格 外形…
功能规格 …
功能规格 …
西门子SIMATIC S7-400PLC的主要特色为:极高的处理…