实时数据区的布尔量上升沿置位发送区的对应位
子程序注释:数据区的任一布尔量的上升沿发送一次数据,并做好序号控制,实时区,历史区,发送区都设置成断电保持
十个梯形图网络注释
(一)
1数据区长度转成字节;初始化复位发送控制变量;初始化应该不需要将实时区复制给历史区;发送数据区没被外部发送成功(复位)直接返回
(二)
数据区字节长度次外循环
(三)
外循环初始化比较左移字节变量==2#00000001
(四)
内循环8次(一个字节8个布尔量位)
(五)
1本次实时字节和历史字节相同跳出内循环,继续下一个字节的比较;
2逻辑与实时区本次字节和比较字节;
3逻辑与历史区本次字节和比较字节;
4按位取反比较字节后复制给取反字节;
5实时字节当前位不为0且和历史位不同,则该位产生了上升沿,将发送区的该位置位1,触发#DatOut发送;
6实时字节的当前位==0或者现实和历史相同则将发送区的该位复位0
7比较字节左移一次比较下个布尔量位
(六)
回到内循环
(七)
刚出内循环把本次的实时字节复制给历史字节
(八)
本次实时和历史字节相同跳出内循环,继续下一个字节的比较并且不需要把本次的实时字节复制给历史字节,因为本次实时字节==历史字节
(九)
比较完一个字节的8个布尔量后出内循环
1递增实时数据区指针;
2递增历史数据区指针;
3递增发送数据区指针
(十)
回到外循环
DatUpEdgeSend.zip