我已将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);
您知道我如何解决这个问题并让您编写代码示例吗?
答案 0 :(得分:1)
我无法发表评论,所以我必须回答(尽管它可能已经太迟了)。
假设CAN接口已初始化并正常工作且can11BitFrame
是CAN_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中,您必须先执行功能块,然后才能访问输出参数。