CanOpen
- 位置
sys_can.aclib
- 功能说明
打开Can通讯口。
- 参数说明
输入输出参数 | 数据类型 | 描述 | 保持 | 常量 |
---|---|---|---|---|
parameter | can_parameter | CAN设备参数:指定端口号和波特率 | × | × |
error_code | can_error_code | 记录打开过程中遇到的异常 | × | × |
can_parameter类型说明:
名称 | 数据类型 | 含义 |
---|---|---|
port | DINT | 端口号,1表示CAN1 |
baudrate | DWORD | 波特率10K:1024020K:2048050K:51200100K:102400125K:128000250K:256000500K:512000800K:8192001M:1048576 |
输出参数 | 数据类型 | 描述 | 保持 | 常量 |
---|---|---|---|---|
CanOpen | POINTER TO BYTE | 非0:返回设备句柄指针,0:打开失败(具体查看error_code输入输出参数返回值)。 | × | × |
can_error_code类型说明:
值 | 含义 |
---|---|
CAN_NO_ERROR | no error |
CAN_ERROR_PORT_OCCUPIED | Port is occupied |
CAN_ERROR_DEV_OPEN_FAILED | Failed to open port |
CAN_ERROR_DEV_HANDLE_INVALID | Invalid com device handle |
CAN_ERROR_ALLOC_FAILED | Failed to apply memory for com device |
CAN_ERROR_ILL_BAUDRATE | Unsupported Baudrate |
CAN_ERROR_ILL_MSG_DATA_LEN | data_len in can_message > 8 |
CAN_UNKNOWN_ERROR | Unknown error |
示例
(例程路径:安装目录\example\CAN口自由口通讯)
CFC示例
ST示例
LD示例
IL示例
CanClose
- 位置
sys_can.aclib
- 功能说明
关闭CAN。
- 参数说明
输入参数 | 数据类型 | 描述 | 掉电保持 | 常量 |
---|---|---|---|---|
hCan | POINTER TO BYTE | CAN设备句柄指针 | × | × |
输出参数 | 数据类型 | 描述 | 掉电保持 | 常量 |
---|---|---|---|---|
CanClose | DINT | 0: 关闭成功,-1:关闭失败。 | × | × |
示例
(例程路径:安装目录\example\CAN口自由口通讯)
- CFC示例
- ST示例
- LD示例
- IL示例
CanSend
- 位置
sys_can.aclib
- 功能说明
通过CAN口发送数据。
- 参数说明
输入参数 | 数据类型 | 描述 | 掉电保持 | 常量 |
---|---|---|---|---|
hCan | POINTER TO BYTE | 句柄指针 | × | × |
输入输出参数 | 数据类型 | 描述 | 掉电保持 | 常量 |
---|---|---|---|---|
message | can_message | CAN消息(输入输出引脚) | × | × |
error_code | can_error_code | 执行过程中产生的故障码(输入输出引脚) | × | × |
输出参数 | 数据类型 | 描述 | 掉电保持 | 常量 |
---|---|---|---|---|
CanSend | DINT | -1:发送失败,1:发送成功。 | × | × |
can_message结构
成员 | 数据类型 | 描述 |
---|---|---|
msg_id | DWORD | 消息ID |
EXTEND | BOOL | TRUE:扩展帧 FALSE:标准帧 |
RTR | BOOL | TRUE:远程帧 FALSE:标准帧 |
data_len | WORD | 数据长度 |
data | ARRAY[0..7] OF BYTE | 数据 |
can_error_code类型说明:
值 | 含义 |
---|---|
CAN_NO_ERROR | no error |
CAN_ERROR_PORT_OCCUPIED | Port is occupied |
CAN_ERROR_DEV_OPEN_FAILED | Failed to open port |
CAN_ERROR_DEV_HANDLE_INVALID | Invalid com device handle |
CAN_ERROR_ALLOC_FAILED | Failed to apply memory for com device |
CAN_ERROR_ILL_BAUDRATE | Unsupported Baudrate |
CAN_ERROR_ILL_MSG_DATA_LEN | data_len in can_message > 8 |
CAN_UNKNOWN_ERROR | Unknown error |
示例
(例程路径:安装目录\example\CAN口自由口通讯)
CFC示例
ST示例
LD示例
IL示例
CanReceive
- 位置
sys_can.aclib
- 功能说明
接收CAN数据。
- 参数说明
输入参数 | 数据类型 | 描述 | 保持 | 常量 |
---|---|---|---|---|
hCan | POINTER TO BYTE | CAN口句柄指针 | × | × |
输出参数 | 数据类型 | 描述 | 保持 | 常量 |
---|---|---|---|---|
message | can_message | CAN消息(输入输出引脚) | × | × |
error_code | can_error_code | 执行过程中产生的故障码(输入输出引脚) | × | × |
CanReceive | DINT | 接收到数据则为1,没有数据则为0,接收错误则为-1。 | × | × |
can_message结构
成员 | 数据类型 | 描述 |
---|---|---|
msg_id | DWORD | 消息ID |
EXTEND | BOOL | TRUE:扩展帧 FALSE:标准帧 |
RTR | BOOL | TRUE:远程帧 FALSE:标准帧 |
data_len | WORD | 数据长度 |
data | ARRAY[0..7] OF BYTE | 数据 |
can_error_code类型说明:
值 | 含义 |
---|---|
CAN_NO_ERROR | no error |
CAN_ERROR_PORT_OCCUPIED | Port is occupied |
CAN_ERROR_DEV_OPEN_FAILED | Failed to open port |
CAN_ERROR_DEV_HANDLE_INVALID | Invalid com device handle |
CAN_ERROR_ALLOC_FAILED | Failed to apply memory for com device |
CAN_ERROR_ILL_BAUDRATE | Unsupported Baudrate |
CAN_ERROR_ILL_MSG_DATA_LEN | data_len in can_message > 8 |
CAN_UNKNOWN_ERROR | Unknown error |
示例
(例程路径:安装目录\example\CAN口自由口通讯)
CFC示例
ST示例
LD示例
IL示例
CAN自由口编程示例
- 示例功能说明(例程路径:安装目录\example\CAN口自由口通讯)
CAN口的打开、发送、接收、关闭综合示例(无需在总线节点添加CAN口设备)。
- 变量定义
名称 | 数据类型 | 初始值 | 注释 |
---|---|---|---|
canParam | can_parameter | (port := 1,baudrate := 512000) | CAN口参数 |
canMsg | can_message | (msg_id := 16#111,data_len := 8,data := [1,2,3,4,5,6,7,8]) | 发送的消息 |
errCan | can_error_code | 操作过程中记录的错误码 | |
hCan | POINTER TO BYTE | CAN口句柄 | |
EnOpen | BOOL | 控制执行打开CAN口指令 | |
EnClose | BOOL | 控制执行关闭CAN口指令 | |
EnSend | BOOL | 控制执行CAN口数据发送指令 | |
EnRecv | BOOL | 控制执行CAN口数据接收指令 | |
iOprRet | DINT | 记录操作结果 | |
canMsgRecv | can_message | 接收的消息 | |
dwRecvCnt | DWORD | 接收消息计数 | |
dwSendCnt | DWORD | 发送消息计数 |
- LD示例