1、安装库文件
合信软件自带canfree库
使用西门子软件时需要将附件库文件添加到西门子软件中
添加成功后显示如下:
2、库的使用
库指令说明:
CAN 通信指令库共有五条指令,分别是:
1、CANInt(CAN 初始化指令)
2、CANSend(CAN 发送数据指令)
3、CANRcv(CAN 接收数据指令)
4、CANFilter(CAN 数据过滤指令)
5、CanRcvN(接收多帧数据)
(1)初始化
① 指令名称:CANInt
② 功能:初始化 CAN 自由口
CAN初始化指令(除充电桩款PLC外,其他V5PLC扩展S2扩展板选择通道号为1)
初始化 CAN 口参数为:CAN 小板通道,125KHz 波特率,帧格式为扩展帧格式
(2)CAN 发送数据
① 指令名称:CANSend;
② 功能:CAN 发送数据;启用该指令,Enable 置 1 则发送一次
CAN 发送数据指令
③ 示例
通过 CAN 扩展板通道发送 8 字节数据,帧 ID 为 2016(通过 SM0.0 调用,通过使能位 Enable 触发)
(3)CAN 接收数据
① 指令名称:CANRcv;
② 功能:CAN 接收数据;收到数据后会把数据填到接收缓冲区,接收指令是查询接收缓冲区有没有数据。Enable 置 1 一次,就查一下接收缓冲区。
CAN 接收数据指令
③ 示例
通过 CAN 扩展板通道接收指针所指存储器中的数据,存放帧 ID 为 2016(通过 SM0.0 调用,通过使能位 Enable 触发)
Err 错误码定义
(4)CAN 接收数据报文过滤
① 指令名称:CANFilter;
② 功能:CAN 接收数据报文过滤;如果只接收特定帧 ID 的 CAN 报文,可以调用过滤指令。如果程序不调用过滤指令,默认过滤 ID 和掩码都是 0,即接收任何 CAN 报文。
CAN 数据过滤指令
③ 示例
通过 CAN 扩展板接收帧 ID 为 0x180xxxxx 的报文
过滤指令的ID需要和掩码一起配合使用,子网掩码的位是0的话,就表示不考虑ID的这个位的值,如果要和ID的某个位一样,相应的就把掩码的那位设置为1,
举例说明下:如果你的ID是2#00101,掩码是2#11,那就表示接收到的ID的最低2位必须是01,
(5)接收多帧数据
① 指令名称:CanRcvN;
② 功能:读取若干帧 CAN 数据,输出实际数量帧 CAN 数据,顺序存放到缓冲区内存,13 字节偏移一帧。
CAN 接收多帧数据
CAN 数据结构(共 13 字节)
③ 示例
通过 CAN0 口一次接收 30 帧数据存储在 VB100 中,将实际的输出帧数存放到缓冲区地址 VB37中。
|