我已经在两个组件之间连接了Wago PFC200 750-8204,这两个组件通过CAN总线进行通信,以便接收消息并进行进一步处理。我的方法是使用WagoCanLayer2_02.lib库在CODESYS2.3中实现它,但我无法读取was总线。代码。
open(BAUDRATE := 500000 ,ENABLE := TRUE );
can11BitFrame(
CAN_ID:= 16#380,
CAN_BUFFER:= FALSE,
ENABLE:= TRUE,
READ_FRAME:= frame,
DATA=> data);你知道我该如何解决这个问题吗?你有没有编写示例代码?
发布于 2016-03-31 15:31:06
我不能评论,所以我必须回答(尽管可能已经太晚了)。
假设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中,您必须先执行函数块,然后才能访问输出参数。
https://stackoverflow.com/questions/34072924
复制相似问题