按下面板上的按钮时,为什么数据要发送两次,是否有解决方案只能发送一次?

时间:2019-05-29 05:46:35

标签: capl

如果按面板上的单选按钮(发送数据),对于以下代码,数据将被发送两次或三次,有时是一次:

on sysvar RC::send_data

{
systemData.byte(0) = 0x01;

systemData.byte(1) = 0x01;

systemData.byte(2) = 0x01;

systemData.byte(3) = 0x01;

systemData.byte(4) = 0x01;

systemData.byte(5) = 0x01;

systemData.byte(6) = 0x01;

systemData.byte(7) = 0xFF;

output(systemData);
}

我只需要按一次就发送一次,如何实现?

为什么数据被随机发送多次?

预期:

Tx : 01010101010101FF

错误结果:

Tx : 01010101010101FF
Tx : 01010101010101FF

1 个答案:

答案 0 :(得分:0)

当您按下按钮时,sysvar将被设置为某个值。您可以在面板设计器的按钮属性Pressed中配置此值。

释放按钮时,sysvar设置为其他值。您可以在面板设计器中的按钮属性Released上配置此值。

您的on sysvar事件处理程序在按下按钮时被调用一次,在释放按钮时被调用一次。

您可以在事件处理程序中使用if语句来仅对sysvar的某些值做出反应。