The value of Zmotion is to bring customers more success!
此前,正运动技术给大家讲了,运动控制器的“固件升级”、ZBasic程序开发、ZPLC程序开发以及运动控制器与触摸屏的通讯等,今天我们来学习一下如何进行运动控制器输入/输出IO的应用。
视频教程:《视频教程:如何进行运动控制器输入/输出IO的应用?》
1、材料准备
1)电脑1台,安装ZDevelop3.01以上版本软件;
2)ZMC306X控制器1个,ZMC432控制器1个;
3)24V直流电源1个;
4)总线驱动器+电机(或步进驱动器+电机)若干;
5)控制器接线端子若干;
6)网线若干;
7)连接线若干; 另:IO设备、扩展模板、触摸屏等根据需求选用。
2、控制器连接配置参考
ZMC306X连接配置
ZMC432连接配置
3、ZMC306X控制器接口
控制器基础硬件信息可查看硬件手册或使用编程软件连接控制器,在线命令栏输入?*max打印查看。
基本轴数:6,可实际控制6个脉冲电机轴。
最多扩展轴数:12,实轴+编码器轴+虚轴合计轴数为12。
基本轴类型:差分脉冲输出,所有轴都带ABZ差分编码器反馈输入。
内部IO数:24进12出(12点的输出都带过流保护,支持300mA电流),另外每轴端子内有1进1出(轴内1输入可以用于报警输入,1输出可以用做使能)。
PWM数:2(输出频率1M,PWM0、PWM1占用OP0、OP1)。
锁存通道:2(占用IN0,IN1两个端子,锁存指令REGIST)。
内部ADDA数:2路AD,AIN(0)-AIN(1);2路DA,AOUT(0)-AOUT(1)。
电源输入:24V直流输入(功耗10W内,不用风扇散热)。
通讯接口:RS232、RS485、RS422、以太网、U盘、CAN。RS232为port0,RS485为port1,RS422为port2。
4、ZMC306X硬件信息查看
在线命令栏输入?*max打印结果:
max_axis:12 所有轴的最大轴数
max_motor:6 可控的最大电机轴数
max_movebuff:128 每个轴或者轴组的最大运动缓冲
max_in:30,528 控制器自带IN输入个数,最多支持IN输入个数
max_out:18,528 控制器自带OUT输出个数,最多支持OUT输出个数
max_ain:2,128 控制器自带模拟量输入个数,最多支持模拟量输入个数
max_aout:2,64 控制器自带模拟量输出个数,最多支持模拟量输出个数
max_pwm:2 PWM输出个数
max_slot:0 总线个数
max_comport:3 串口个数
max_ethport:3 与PC、API函数的网口通讯连接个数
max_ethcustom:2 自定义网口通讯的连接个数
max_ethiport:1 正运动控制器互联互通的网口通讯连接
max_flashnum:1000 FLASH块数
max_flashsize:20480 每个FLASH空间大小
max_nand:265551872 NandFlash存储总共的数量空间
max_nandremain:267911168 NandFlash存储剩余可用的数量空间
max_pswitch:16 软件位置比较输出的最多个数
max_file:30 系统最多支持的文件数
max_3file:1 系统最多支持的三次文件数
max_task:12 任务数
max_timer:128 定时器个数
max_loopnest:8 内部循环或者选择的次数
max_callstack:7 子程序调用的堆栈层数
max_local of one sub:16 SUB的局部变量数
max_flashnum:1000 FLASH块数
max_flashsize:20480 每个FLASH空间大小
max_nand:265551872 NandFlash存储总共的数量空间
max_nandremain:267911168 NandFlash存储剩余可用的数量空间
max_pswitch:16 软件位置比较输出的最多个数
max_file:30 系统最多支持的文件数
max_3file:1 系统最多支持的三次文件数
max_task:12 任务数
max_timer:128 定时器个数
max_loopnest:8 内部循环或者选择的次数
max_callstack:7 子程序调用的堆栈层数
max_local of one sub:16 SUB的局部变量数
max_vr:1024 VR寄存器空间个数
max_table:300000 TABLE数组空间个数
max_modbusbit:4096 MODBUS_BIT位寄存器空间大小
max_modbusreg:4096 MODBUS_REG字寄存器空间大小
max_var:4096 最多支持变量个数(含全局变量与文件变量)
max_array:1024 最多支持数组个数(含全局数组与文件数组)
max_arrayspace:640000 所有数组总共的空间大小
max_sub:1500 最多支持SUB子程序的个数
max_edgescan:1024 最多可支持的上升沿/下降沿扫描个数
max_lablelength:17 数组与变量等自定义字符的最大长度
max_hmi:1,x:1024y:600支持1个远端HMI,最大尺寸为1024*600
function support:Coder Cam MultiMove Circ Merge Frame 支持的运动控制功能
5、ZMC306X控制器状态
使用ZDevelop软件连接控制器,菜单栏->控制器->控制器状态,查看控制器的基本信息。
VirtualAxises:支持最大虚拟轴数
RealAxises:支持最大电机轴数
Taskes:最大任务数
Files/3Files:最大文件/三次文件数
Modbus0x Bits:Modbus位寄存器用户可用空间大小
Modbus4x Regs:Modbus字寄存器用户可用空间大小
VR Regs:VR寄存器用户可用空间大小
TABLE Regs:TABLE数组用户可用空间大小
RomSize:Rom容量
FlashSize:Flash容量
SoftType:软件型号
SoftVersion:系统软件版本+固件版本
IpAddress:控制器IP地址
HardVersion:硬件版本
ControllerID:控制器唯一ID
Axis features list:轴类型列表
使用ZDevelop软件连接控制器,菜单栏->控制器->控制器状态。
ZCAN节点:查看控制器本地信息与CAN总线上连接的的扩展模块信息。
通讯配置:查看CAN信息与串口通道RS232/RS485/RS422信息。
包含EtherCAT接口的控制器可以在控制器状态里查看槽位节点信息,显示总线槽位上连接的所有设备信息。
6、ZMC306X数字量输入口
通用数字输入口可接NPN型。光耦和滤波器的作用是防止干扰信号通过信号线和电源线进入控制器。
输入口特殊功能:IN0-1口同时具有锁存输入A与锁存输入B的功能,锁存高速输入口允许的输入信号硬件滞后时间为1us。剩余的为普通输入口,允许输入信号的硬件滞后时间为50us左右,可设置滤波器参数增大滤波时间。
特殊信号定义:数字量输入口在硬件上没有做特殊定义,都是通用的,原点,限位,报警快速点动,正向JOG,反向JOG,进给保持等特殊信号都是通过软件指令进行设置。
DATUM_IN,REV_IN,FWD_IN,ALM_IN,FAST_JOG,FWD_JOG,REV_JOG,FHOLD_IN等指令可用于配置。
INVERT_IN:输入信号的反转配置。
输入反转:
INVERT_IN(8,ON) '输入反转
输入口滤波:
INFILTER=5 '值越大,滤波时间越长, 2-9,缺省2
输入口的读取:
IN(0) 读取IN0数据 IN(0,7) 一次性读取IN0~IN7数据
读取上升沿/下降沿状态:
方法一:
SCAN_EVENT(IN(0)) > 0 上升沿
SCAN_EVENT(IN(0)) < 0 下降沿
方法二:
IN_SCAN(0,23) 之后,IN_EVENT(0) > 0 上升沿
IN_SCAN(0,23) 之后,IN_EVENT(0) < 0 下升沿
输入信号的诊断:ZDevelop->视图->输入口。
运行如下程序,得出输入口状态如图所示。
灰色表示无输入,绿色表示有输入,特殊信号输入在窗口里有提示,IO编号的显示可在“IO选择”中自定义。
7、ZMC306X数字量输出口
通用数字输出口可接NPN型。光耦和滤波器的作用是防止干扰信号通过信号线和电源线进入控制器。
通用的输出口的单个输出最大电流为300mA,轴端子上面的输出最大电流为50mA。
通用输出的指令为OP。
输出口特殊功能:OUT0~1口支持PWM输出,当PWM功能关闭时为普通输出。PWM高速输出口允许的输出信号频率为1M,剩余的为普通输出口,允许输出的频率频率为10K左右。
使用PWM_DUTY和PWM_FREQ指令分别设置占空比和频率。
PWM_DUTY(0)=0.4 '0.4占空比 PWM_FREQ(0)=1000 '1k频率。
PWM_DUTY(1)=0.5 '0.5占空比 PWM_FREQ(1)=1000000'1M频率。
输出信号的诊断:ZDevelop->视图->输出口。
运行如下程序,得出输出口状态如图所示。
8、数字量输入输出扩展
当数字量输入输出点数不够用时,可连接扩展模块扩展输入输出,可采用CAN总线和EtherCAT总线连接扩展模块。
ZMC306X由于只包含CAN接口,只能采用CAN总线扩展,最多可扩展512个IN输入口,512个OUT输出口,当脉冲轴数不够用时,支持采用ZCAN扩展模块扩展脉冲轴,接线方法参见下图。
一定要保证控制器的EGND与ZCAN IO的GND连在一起,且CANL和CANH之间接入120欧电阻。
9、ZMC306X模拟量输入输出
ZMC306X包含两路AD模拟量输入,和两路DA模拟量输出, 内部 AD/DA 采用了内部电源。
控制器模拟量精度为12位,刻度范围为0~4095,输入输出电压范围为0~10V。
模拟量输入输出点数不够用时,可选用扩展模块扩展,模拟量可扩展256路AD和128路DA。
相关指令:
模拟量输入:AIN 读取AIN(0),AIN(1)
模拟量输出:AOUT 写入AOUT(0),AOUT(1)
ZMC306X的AD/DA信号的诊断:ZDevelop->视图->AD/DA,实时监控模拟量各通道的电压。
10、在运动的过程中同步输出
在运动的过程中同步输出OP、DA、PWM。
相关指令:
MOVE_OP 运动的过程中输出OP
MOVE_OP2 运动的过程中输出OP一段时间
MOVE_PWM 运动的过程中输出pwm
MOVE_AOUT 运动的过程中输出模拟量
11、触摸屏的IN,OP,ADC,DAC等数据读写
● IN(0)~IN(4095)对应MODBUS_BIT(10000)~MODBUS_BIT(14095) 只读
● OP(0)~OP(4095)对应MODBUS_BIT(20000)~MODBUS_BIT(24095) 读写
● AIN(0)~AIN(255)对应MODBUS_REG(14000)~MODBUS_REG(14255)只 读
● AOUT(0)~AOUT(127)对应MODBUS_REG(13000)~MODBUS_REG(13127)读写
● DPOS,MPOS,VPSEED 对应MODBUS_IEEE(10000)~MODBUS_IEEE(12198)只读
12、位置比较输出
● 比较输出相关指令:软件比较输出PSWITCH指令;硬件比较输出HW_PSWITCH指令(仅支持脉冲轴),HW_PSWITCH2指令(脉冲轴总线轴均支持),在电机位置到达设置位置时,操作某个输出口电平变化。
● 其中4系列及3系列部分控制器支持硬件比较输出,例如ZMC432,包含4个硬件比较输出通道,且各通道独立(部分型号非独立),不同控制器型号支持的硬件比较输出通道个数有所区别,特殊功能对应的输出口IO编号一般从0开始。
● 每个系统周期内只能比较一次,通道独立,一个系统周期支持多个输出口同时使用硬件比较输出,若通道非独立,则一个系统周期只能使用一个输出口,系统周期通过SERVO_PERIOD查询,缺省为1ms。
● HW_PSWITCH2与MOVE_OP精准使用同样的硬件资源,所以不建议在同一个通道同时使用,若通道独立,则可以在不同的通道同时使用。
13、精准输出
支持硬件比较输出功能的控制器才可使用精准输出功能,使用AXIS_ZSET指令设置是否开启精准输出。开启后使用MOVE_OP指令精准输出生效,注意输出通道要选择支持精准输出的通道,不同控制器型号支持的通道个数有所区别,一般特殊功能从IO编号0开始。
普通的输出操作需要等待一个控制器周期才可以执行。而精准输出操作,可在电机发出一个脉冲内响应,大大提高工艺的精度,同时可以使用MOVEOP_DELAY指令调整响应时间(提前或延迟)。
一般精准输出功能在一个控制器周期内只能执行1个,再次启用需要等到下个周期。不过最新控制器如ZMC420SCAN每个精准输出都是独立的,可以在一个周期内同时使用多个口,是否支持同时使用多个精准输出功能查看硬件手册中的输出口说明。
14、控制器示例程序(basic示例程序)
控制器程序分为五个模块:
1)初始化模块:轴参数设置子程序,IO初始化子程序。
2)输入扫描模块:按下启动输入点,停止输入点的相应程序。
3)轴参数设置子程序:初始化轴参数。
4)IO初始化子程序:初始化IO(OP,AOUT)。
5)按下启动的运动任务:启动按键按下调用执行运动任务1。
今天,正运动技术的如何进行运动控制器输入/输出IO的应用就分享到这里。更多精彩内容,请关注我们的公众号。
本文由正运动小助手原创,欢迎大家转载,共同学习,一起提高中国智能制造水平。文章版权归正运动技术所有,如有转载请注明文章来源。
正运动技术是一家专注于运动控制技术研发与应用的国家级高新技术企业,主要从事运动控制器、运动控制卡、IO扩展模块、运动显控一体机等系列产品的研发、生产、销售和服务。
公司汇集了来自华为、中兴等公司的优秀人才,在坚持自主创新的同时,积极联合各大高校致力于运动控制技术研究与应用,是国内工控领域发展最快的企业之一,也是国内完整掌握运动控制核心技术和实时工控软件平台技术的企业。