3 PLC控制程序
3.1 接收数据
按照通信协议, PLC处于接收数据状态。用接收指令RCV VB100, 0, 将接收到的数据存放在PLC接收缓冲区VB100 开始的存储区, 接收缓冲区与插补控制信息的对应关系如图3所示。
图3 PLC接收数据缓冲区
3.2 通信及初始化设置
S72200PLC与PC机通信采用自由端口通信模式, 通信参数为波特率9600bp s, 每个字符8位数据位, 无奇偶校验。采用报文接收, 一次接收多个字节, 这时需要设置特殊存储器字节SMB87 ~SMB94及脉冲分配要用到的几个寄存器。通信与初始化设置程序如下:
LD SM011 / /首次扫描为1
MOVB 16#09, SMB30 / /初始化自由口通信参数
MOVB 16#B0, SMB87 / /RCV信息控制字节
MOVB 16#0A, SMB89 / /结束符为16#0A
MOVW + 1, SMW90 / /空闲超时为1ms
MOVB 100, SMB94 / /最大字符数为100
MOVB 1, VB400 / /X轴脉冲分配移位寄存器
MOVB 1, VB500 / /Y轴脉冲分配移位寄存器
MOVB 0, VB300 / /移位寄存器的移入数据
MOVB 0, AC1 / /X轴的时序脉冲记数器
MOVB 0, AC2 / /Y轴的时序脉冲记数器
ATCH INT_ 0, 23 / /报文接收结束中断事件
EN I / /允许中断
RCV VB100, 0 / /执行接收指令, 接收缓冲区
指向VB100
3.3 脉冲分配
对三相步进电机的控制, 有单三拍、双三拍和单、双六拍通电方式, 我们采用六拍通电方式。改变通电顺序就改变了步进电机的旋转方向, 数控平台的移动方向就改变了。如何用PLC产生六拍时序脉冲及改变通电顺序, 实现数控平台沿X、Y轴正确移动是PLC控制程序的关键。
以X轴步进电机为例, 用移位寄存器指令SHRBV30010, V40010, + 7 对VB400 移位产生六拍时序脉冲, 初始化时VB300 为0, VB400 为1, 执行一次移位将V30010 位的值从V40010 位移入, + 7 表示VB400中参与移位的7 位为V40010 ~V40016。用VB400中的六位V40011 ~V40016 产生六拍时序脉冲, 每移位一次为一拍, V40011~V40016前移一位,在V40011~V40016中每次总有一位为逻辑1, 其它位为逻辑0, 如第一次移位后V40011 ~V40016 等于100000, 逻辑1就代表着当前拍所在位置。移位六次为一循环, 反复进行。
每一拍X 步进电机三相的通电情况用M110、M111和M112存储, M110、M111 和M112 组成三相单、双六拍环形脉冲分配器, 在V40011 ~V40016产生的六拍时序脉冲的作用下, M110、M111 和M112的通电顺序为: M110→M110、M111→M111→M111、M112→M112→M112、M110。
步进电机的正反转控制用4 个控制开关实现,Q013作X轴正转开关, Q013 = 1正转, Q014作X轴反转开关, Q014 = 1 反转, Y轴类似, 用Q015 和Q016。
用Q217、Q216和Q215输出控制信号到X轴步进电机XA、XB和XC三相, 当Q013 闭合时X轴正转, X步进电机的通电顺序为A→AB→B→BC→C→CA→A, 循环。即:
Q217→Q217、Q216→Q216→Q216、Q215→Q215→Q215、Q217→Q217, 循环。