通信协议:(采用和校验)
控制2路步进电机的协议,主要实现如下功能:
1
驱动器细分设定、步距离角设定;
2
正向、反向、距离设定、启动、停止命令,
3
回0命令
4
读输入点信号,设定输出继电器、OC输出
(协议采用9个字节每帧)
一、设定细分、步距角
0xff
0xaa
0x0N(电机1对应0x01,电机2对应0x02)
0x01(CMD,对应命令)
0xnn
0xnn(这2个字节对应细分,前面为低字节、后面为高字节)
0xnn(对应步进电机的步距角X100,如1.8;对应就是180)
0x00
0xnn(对应前面所有的字节的和)
回:0xff
0xaa
0x0N(电机1对应0x01,电机2对应0x02)
0x01
0x00
0x00
二、设定齿轮比
0xff
0xaa
0x0N(电机1对应0x01,电机2对应0x02)
0x02(CMD,对应命令)
0xnn
0xnn
0x00(前面3个字节,对应的是电机转一圈,所走的距离,X1000,单位是MM,前面是低字节,后面是高字节)0x00
0xnn(对应前面所有的字节的和)
回:0xff
0xaa
0x0N(电机1对应0x01,电机2对应0x02)
0x02
0x00 0x00
三、设定运行距离
0xff
0xaa
0x0N(电机1对应0x01,电机2对应0x02)
0x03(CMD,对应命令)
0xnn
0xnn
0x00(前面3个字节,走的距离,X100,单位是MM,前面是低字节,后面是高字节)0x00
0xnn(对应前面所有的字节的和)
回:0xff
0xaa
0x0N(电机1对应0x01,电机2对应0x02)
0x03 0x00
0x00
四、设定启动
0xff
0xaa
0x0N(电机1对应0x01,电机2对应0x02)
0x04(CMD,对应命令启动)
0xnn(方向 0正转 1反转))
0x00 0x00(启动频率 前面是低字节 后面是高字节) 0x00
0xnn(对应前面所有的字节的和)
回:0xff
0xaa
0x0N(电机1对应0x01,电机2对应0x02)
0x04 0x00 0x00
当运行到位后,再回:
0xff
0xaa
0x0N(电机1对应0x01,电机2对应0x02) 0x04
0x01
0x00
五、设定运行
0xff
0xaa
0x0N(电机1对应0x01,电机2对应0x02)
0x05(CMD,对应命令启动)
0x00 0x00加减速频率
0x00 0x00 (运行速度 单位RPM 前面是低字节 后面是高字节)
0xnn(对应前面所有的字节的和)
回:0xff
0xaa
0x0N(电机1对应0x01,电机2对应0x02)
0x05 0x00 0x00
当运行到位后,再回:
0xff
0xaa
0x0N(电机1对应0x01,电机2对应0x02) 0x05
0x01
0x00
六、设定停止
0xff
0xaa
0x0N(电机1对应0x01,电机2对应0x02)
0x06(CMD,对应命令停止)
0x00
0x00
0x00 0x00
0xnn(对应前面所有的字节的和)
回:0xff
0xaa
0x0N(电机1对应0x01,电机2对应0x02)0x06 0x00 0x00
当真正停止时,再回:
0xff
0xaa
0x0N(电机1对应0x01,电机2对应0x02) 0x06
0x01
0x00
七、回零命令
0xff
0xaa
0x0N(电机1对应0x01,电机2对应0x02)
0x07(CMD,对应回0命令)
0x00
0x00
0x00 0x00
0xnn(对应前面所有的字节的和)
回:0xff
0xaa
0x0N(电机1对应0x01,电机2对应0x02)
0x07
0x00
0x00
当真正到0时,再回:
0xff
0xaa
0x0N(电机1对应0x01,电机2对应0x02)
0x07
0x01
0x00
八、回零延时设定:对应控制器在这个时间没有回到零位(碰到0位开关),就停止对应电机的运行,并且报错给上位机
0xff
0xaa
0x0N(电机1对应0x01,电机2对应0x02)
0x08(CMD,对应回0超时设定)
0xnn
0xnn
0xnn(设定超时的时间值,前面是低字节,后面是高字节,单位是ms)
0x00
0xnn(对应前面所有的字节的和)
回:0xff
0xaa
0x0N(电机1对应0x01,电机2对应0x02)
0x08
0x00
0x00
如果在设定的时间内没有回到0,报错回:
0xff
0xaa
0x0N(电机1对应0x01,电机2对应0x02)
0x08 0x01
0x00
九、开始运行命令
0xff
0xaa
0x0N(电机1对应0x01,电机2对应0x02)
0x09(CMD,对应回0命令)
0x00
0x00
0x00 0x00
0xnn(对应前面所有的字节的和)
回:0xff
0xaa
0x0N(电机1对应0x01,电机2对应0x02)
0x09
0x00
0x00
当真正开始时,再回:
0xff
0xaa
0x0N(电机1对应0x01,电机2对应0x02)
0x09
0x01
0x00
十,设置回零参数(回零速度,回零方向)。不设置即为默认参数。
0xff
0xaa
0x0N(电机1对应0x01,电机2对应0x02)
0x0A(CMD,对应回0命令)
0x00(方向 0正转 1反转) 0x00 0x00
回零速度0x00 0xnn(对应前面所有的字节的和)
十一、读取输入口命令
0xff
0xaa
0x00
0x0b(CMD,对应回读取输入口命令)
0Xnn(0X01对应读取X1的信号,依次类推,最多目前是X0D,13路)
0x00
0x00 0x00
0xnn(对应前面所有的字节的和)
回当对应输入为ON时:
0xff
0xaa
0X00 0x0b 0xnn(对应那个输入口)
0x01
回当对应输入为OFF时::
0xff
0xaa
0X00 0x0b 0xnn(对应那个输入口)
0x00
十二、输出控制命令
0xff
0xaa
0x00
0x0c(CMD,对应控制输出命令)
0Xnn(0X01对应Y1输出,依次类推,最多目前是X0C,12路,本系统目前1-7路输出为OC方式,8-12为加点器输出方式)
0xnn(0x00为让输出OF,0x01让输出ON)
0x00 0x00
0xnn(对应前面所有的字节的和)
回当对应控制为ON时:
0xff
0xaa
0X00 0x0c 0xnn(对应口)
0x01
回当对应控制为OFF时:
0xff
0xaa
0X00 0x0c 0xnn(对应口)
0x00
注意:可以扩展AD\DA功能(需要定制)。
三、提供最后协议的PDF版本下载(或WORD版),还在整理中。
四、提供上位机的VB相关代码,VC相关案例代码(还在开发中)
五、控制器外形图
VC的测试代码:
VC-A.rar (3.84 MB)
VB的测试代码:
VB上位机源代码.rar (14.43 KB)
欢迎光临 珩源工控论坛 (http://bbs.hymcu.com/) | Powered by Discuz! 7.2 |