二、与从站xmc4800通信
与其通信必须得先配置好从机设备的各种描述参数,而其参数可以在对应的厂家提供的xml文件,作用是描述从站设备,通过对 xml 文件的详细了解,直接写对应的控制指令,对从站做出配置。
接下来楼主配合其xml文件和代码配置进行说明
(1)从站Man ID name等设备信息配置
通过该查表数组修改
以上信息可以在厂家xml文件看到,找到实际的硬件型号等信息,前三个nan id name如下对应关系,查询好进行插入即可。
查表数组中的SM2a和SM2f SM3a和SM3f,对应sm对象中的第三个和第四个,展开可看到
sm2a,sm3a 分别对应 xml 中的
sm2f是enable和controlbyte的组合, 即enable在前controlbyte在后0x00010064,sm3f 类似, 参照上图填写。FM0AC 和 FM1AC 对应是否有输入输出,若有填 1。
上面的Ibit和Obit是PDO对应的RxPdo和TxPdo中的不同对象的数据类型长度。比如RxPdo的对象中对应4个16位长度,8个bool长度,一共72bit,对应的TxPdo也是72位。
其实如果觉得这个配置太繁琐,可以刚在主机寻找从机,在从机safeop下,从机会下发相关的设备信息给从机,我们可以进而打印查看,写入到对应的查表即可。
(2)对象字典映射。
不同的控制对象需要对应不同的对象字典,此处需要查看手册和 xml 文件做对应的配置。
对 PDO 进行配置,分别配置输入和输出。上面填写的 Ibit 和 Obit 与此处重映射的输入输出有关。一定得对应上。不然主站无法进入 OP 状态。
这里简单对输出简单说明。
根据源码可以知道RxPDO分配对象是0x1c12,先对其子项0初始化清零,表示该对象为分配子对象,然后子项配置对象字典,配置为0x1600,然后再子项0写入1,表示 0x1c12 配置了 1 个对象字典。
RXPDO映射对象组1的对象字典为0x1600,那么在这个对象字典下需要配置12个子项对象字典,在这里说明下第一个子项字典对象0x70000110的意思,含义是驱动器的控制字,00代表该对象字典的subitem,最后10为该对象字典的BIT长度,0x10即为16BIT,也就是2个字节。
那么映射好字典对象,需要再对应定义输入输出结构体。以此映射完毕。
|