恭喜,你发布的帖子
发布于 2025-04-26 08:19:09
4楼
msg执行的前置条件是执行过ctrl,如果只把msg放在中断中,可能会无法正确执行。
通讯多依赖于通讯中断才能正常运行,即ctrl和msg本身就需要调用中断程序,因此把ctrl或msg也放入中断程序中,会加重中断处理的时间占用。
一个9.6K的RTU通讯多在五十毫秒以上,一个运行周期通常低于一毫秒,因此,通过中断可能提高的通讯速度很有限。虽然更高速率的通讯时间也会更短,但由于干扰的影响,在485线路上的通讯速度,受plc周期影响的程度很有限,毕竟随便一个485中继器或网关的延迟都在150毫秒左右。当然plc做为RTU从站时除外。
plc标准数据处理方式要求,通讯数据的处理和准备,需要在周期外进行,以防止同一个数据在周期前后半段不一致,引起程序跑飞。比如屏幕上有一个置位按钮(屏幕也是通讯的一种),该位在程序前后半段会执行不同的动作,而前一动作是后一动作的前置条件,如果同一个周期中此位被中断改变状态,可能会发生未执行前置动作而直接执行后一动作的情况。因此试图通过中断程序来加快通讯速度的方式,是危险的。
请填写推广理由:
分享
只看
楼主