Codesys Wago CAN通讯

时间:2015-12-03 17:53:54

标签: plc can-bus codesys

我已将Wago PFC200 750-8204连接到两个组件之间,这两个组件通过CAN总线进行通信,以便接收消息并进行进一步处理。我的方法是使用WagoCanLayer2_02.lib库在codeys 2.3中实现它,但我使用readind canbus失败了。 守则。

open(BAUDRATE := 500000 ,ENABLE := TRUE );
can11BitFrame(
CAN_ID:= 16#380,
CAN_BUFFER:= FALSE,
ENABLE:= TRUE,
READ_FRAME:= frame,
DATA=> data);

您知道我如何解决这个问题并让您编写代码示例吗?

1 个答案:

答案 0 :(得分:1)

我无法发表评论,所以我必须回答(尽管它可能已经太迟了)。

假设CAN接口已初始化并正常工作且can11BitFrameCAN_RX_11BIT_FRAME个实例,则以下内容应该有效:

can11BitFrame(
    CAN_ID := 16#380,
    CAN_BUFFER := FALSE,
    CAN_PORT := 0,    (* not sure if this is really necessary here *)
    ENABLE := TRUE,
    READ_FRAME := frame);

data := can11BitFrame.DATA;

或者

IF can11BitFrame.error = CAN_RECEIVE_OK THEN
    data := can11BitFrame.DATA;
END_IF

每次要阅读邮件时,您必须将frame设置为true

我不知道DATA => data是否以及如何工作(我在这里使用FUP)。我所知道的。在ST中,您必须先执行功能块,然后才能访问输出参数。