XPLC006E功能介绍
XPLC006E正运动控制器推出的多轴经济型EtherCAT总线运动控制器,XPLC可应用于各种需要脱机或在线运行的场合。
XPLC006E自带6个电机轴,最多12轴运动控制(含虚拟轴数),支持12轴直线插补、电子凸轮、电子齿轮、同步跟踪、虚拟轴设置等功能。
XPLC006E支持多任务同时运行,同时可以PC直接模拟操作,编程方法可选,支持ZDevelop软件的Basic/PLC梯形图/HMI组态和常用的上位机软件编程。
XPLC006E只支持EtherCAT总线轴,不支持脉冲轴和编码器轴。采用EtherCAT总线与驱动器通信,1ms刷新周期。
XPLC006E支持PLC、Basic、HMI三种编程方法。PC上位机API编程支持C#、C 、LabVIEW、VB、matlab、Qt、Linux、.Net、iMAC、Python、 ROS等接口。
→此款产品有XPLC004E、XPLC006E、XPLC008E可选择三种不同轴数的型号。
XPLC864E功能介绍
XPLC864E在XPLC006E升级了功能(即上节介绍的)XPLC006E支持所有功能),部分资源空间优于XPLC006E,使用方法基本相同,区别在于XPLC864E,硬件支持32点输入,32点输出,2点输出ADC、2个DAC,支持脉冲轴与总线轴混合,总轴数为8,除了带EtherCAT除接口外,输出口硬件可配置为8轴脉冲方向信号输出,另有两个编码器输入,输入口可配置
XPLC864E支持PLC、Basic、HMI组态三种编程方式。PC上位机API编程支持C#、C 、LabVIEW、VB、matlab、Qt、Linux、.Net、iMAC、Python、 ROS等接口。
XPLC系列经济型EtherCAT总线运动控制器支持多种编程方法和正运动技术自主研发ZDevelop开发环境的Basic语言和PLC梯形图,上一节讲解PLC本节主要讲解梯形图的开发。ModbusRTU或ModbusTcp通信触摸屏。
一 控制器与触摸屏的通信简介
XPLC006E控制器的串口和网口采用MODBUS只要支持协议MODBUS通信协议的触摸屏可以与XPLC006E连接使用控制器。
控制器使用MODBUS当协议与第三方触摸屏通信时,此时需要将数据放置在MODBUS在寄存器中传输,支持通过串口或网口连接到控制器,有两种类型的寄存器和字体寄存器。
控制器的MODBUS地址不同于其他制造商的触摸屏地址映射关系。在编写程序之前,清控制器和触摸屏MODBUS控制器与部分触摸屏对应寄存器地址MODBUS寄存器地址关系如下。
1.控制器的MODBUS地址从0开始,与威纶触摸屏通信时,地址从0开始,所以一一对应。
控制器MODBUS_BIT(0)对应威纶触摸屏MODBUS_0X_0,布尔型。
控制器MODBUS_REG(0)对应威纶触摸屏MODBUS_4X_0、字寄存器。
2.与昆仑通态触摸屏通信时,昆仑通态地址从1开始,没有0地址,控制器地址从0开始,所以触摸屏地址加1。
控制器MODBUS_BIT(0)昆仑通态触摸屏对应MODBUS_0X_1,布尔型。
控制器MODBUS_REG(0)昆仑通态触摸屏对应MODBUS_4X_1,字寄存器 。
二触摸屏与控制器的连接
根据触摸屏和控制器上的通信接口选择通信连接方式,可选择串口连接或网口连接。当触摸屏与控制器建立通信连接时,触摸屏为主站,控制器为从站,主要在触摸屏端操作连接。连接时应匹配相应的串口或网口参数。控制器端只需提供通信参数。以下是网口和串口的通信参数说明。
- 网口连接 默认控制器出厂IP地址为“192.168.0.网口默认为11MODBUS从端,IP地址可在软件“控制器状态”窗口查看。使用IP_ADDRESS指令修改IP或正在修改地址IP修改地址窗口,永久生效。控制器至少有两个网口通道,端口号为502,支持触摸屏MODBUS-TCP协议连接。
查看网口通道数:不同型号控制器支持的串口通道数不同于网口通道数。使用在线命令栏发送*port查看通道数,如下图所示,通道数确定了控制器可同时连接的设备数量。
上图中的Port:0-1是串口通道,2-9是网口通道,10-15是自定义网口通道,20是控制器互联通道。
不同类型的控制器支持不同数量的通信通道。控制器至少有两个网口通道,因此两个设备可以通过网口同时连接,如上位机程序ZDevelop软件在线监控。还可以通过路由器连接两个不同的设备。
在线命令栏发送*port_status检查通信端口是否已使用。返回值为0,无连接,返回值为1。
前两个通道COM串口通道总是返回1,第三个通道是网口通道连接ZDevelop。
查看和使用当前网口通道协议PROTOCOL 根据下表返回值判断指令返回当前通道的通信协议。
VAR1 = PROTOCOL(port)
port:通道号
2.串口连接
串口通常是可选的RS232串口或RS485串口,串口默认参数为:波特率38400,数据位8,停止位1,无校验位,串口默认为MODBUS从头到触摸屏通信时无需修改SETCOM串口参数的指令配置。
注:串口参数不保存,控制器重新上电后,SETCOM参数还原为默认值,控制器所有串口MODBUS协议站号ADDRESS为 1- 127,缺省=1。
串口参数可通过控制器状态窗口通信配置查询如下图所示,或*SETCOM打印查看。
三控制器连接触摸屏
1.控制器与触摸屏通信的参考流程
(1)使用控制器端的程序ZDevelop软件编写完成并下载到控制器中。
(2)用相应的编程软件编写触摸屏端程序后,下载到触摸屏保存。
(3)程序下载完成后,选择串口或网口将触摸屏与控制器脱机连接。
通信时可用的寄存器类型如下:MODBUS_BIT(布尔型),MODBUS_REG(16位整形),MODBUS_LONG(32位整形),MODBUS_IEEE(32位浮点型),MODBUS_STRING(8位字节型)。
2.下载控制器程序
程序使用控制器端ZDevelop完成软件编写并下载到控制器中。
3.下载触摸屏程序
威纶触摸屏端的程序使用EasyBuilder编程软件,编程方法见威伦提供手册,编程完成后,打开系统参数设置窗口,如下图所示。
(1)添加与触摸屏连接的设备
本机触摸屏和本机设备将显示在设备列表中。如果本机设备双击本行,如果第一次建立连接,则无需新建本机设备。 新设备/服务器…弹出设备属性窗口。
(2)设置设备属性
如下图所示,首先选择设备类型MODBUS IDA根据触摸屏与控制器的实际连接方式选择通信协议。
串口通信和网口通信选择的设备类型不同,详见后续说明。
A.若采用串口连接
设备类型:选择模式MODBUS RTU(Zero-based Addressing);
接口类型:串口类型:(RS485或RS232);
COM:通信端口设置匹配的波特率和其他参数,如下图所示时,参数必须与连接到控制器的端口参数一致,并设置窗口,以确认关闭系统参数。
B.若采用网口连接
设备类型:选择模式MODBUS TCP/IP(Zero-based Addressing),接口类型自动改为以太网;
IP:填写当前要连接的控制器IP地址和端口号,如下图;
设置窗口,以确认关闭系统参数。
设置系统参数后,编译组态程序,点击编译,打开下图的编译窗口。
点击右下角的开始编译按钮,成功打印信息提示,将开始编译按钮转换为编译按钮。如果编译窗口不正确,则需要修改程序,直到编译成功。
成功编译程序,将触摸屏连接到PC下载程序,下载程序入口如下图所示。
点击下载按钮,通过以太网将程序下载到触摸屏上。下载后,程序已写入触摸屏,可断开触摸屏和触摸屏PC的连接。
(3)触摸屏和控制器通信
控制器端程序成功下载到控制器后,触摸屏端程序成功下载到触摸屏后,可与PC断开连接,物理连接触摸屏和控制器。此时,触摸屏和控制器可以相互通信。如果无法通信,则需要检查上一步触摸屏端通信参数的配置。
(4)控制器与触摸屏脱机模拟
若无控制器或触摸屏,可采用仿真器仿真,ZDevelop按照上述步骤,程序下载到模拟器中,只支持网口连接模拟,EasyBuildr软件的系统参数设置时选择设备类型为MODBUS IDA—MODBUS TCP/IP(Zero-based Addressing),IP地址填入仿真器IP:127.0.0.1,如下图选择“在线模拟”即可连接控制器程序与组态程序进行仿真。
点击在线模拟之后自动开始编译,编译结果正确打开如下触摸屏仿真界面,此时可以操作。编译不成功会出现报错错误信息。
触摸屏仿真界面如下图所示:
四触摸屏通讯例程
1.课程前期准备材料
(1)电脑1台:用于程序开发;
(2)控制器1个:XPLC864E,完成直线和平面圆弧插补;
(3)24V直流电源1个:控制器采用24V直流电源供电;
(4)总线驱动器+电机(或步进驱动器+电机)2套:数量根据轴数选定;
(5)威纶触摸屏1个:人机交互;
(6)控制器接线端子若干;
(7)网线若干;
(8)连接线若干。
2.项目配置
寄存器地址分配如下表:
本项目使用的D寄存器均为MODBUS_IEEE。
任务资源配置如下图:本实例占用三个任务。
任务0:主循环,循环扫描外部输入信号来决定其他任务的启动。
任务1:由任务0启动,加工前先用任务1执行回零程序,回零完成后任务1用于加工程序。
任务2:由任务0启动,用于手动运动。
如下图,在ZDevelop软件上通过“寄存器”窗口批量查询MODBUS寄存器的值。
3.应用程序
(1)威纶触摸屏端程序
使用触摸屏厂商提供的组态编程软件编写,触摸屏通过MODBUS与控制器通讯,元件属性设置对应MODBUS寄存器地址,按下元件可以修改对应的MODBUS寄存器地址的值,传递给控制器处理,程序界面如下图。
(2)控制器端程序
控制器的编程界面和程序如下图:
控制器端通过WHILE不断的扫描MODBUS寄存器值的变化来决定是否执行对应的程序。
'**********初始化模块*********
SETCOM(38400,8,1,0,0,4,2,1000) '出厂模式,MODBUS字寄存器和VR空间独立
ERRSWITCH = 3 '全部信息输出
RAPIDSTOP(2)
WAIT IDLE
BASE(0,1) '选定 X Y轴
DPOS=0,0
ATYPE=1,1
UNITS = 100,100
SPEED = 100,100
ACCEL = 1000,1000
DECEL = 1000,1000
SRAMP = 100,100
DIM run_state '运行状态
run_state = 0 '0 停止,1 运行,2 回零
MODBUS_REG(0) = run_state '显示运行状态
DIM radius,length '半径,长度
radius = 100 '缺省半径大小
length = 300 '缺省长度
'FLASH_READ 0,radius,length
MODBUS_IEEE(2) = radius '显示半径大小
MODBUS_IEEE(4) = length '显示长度
DIM home_done '回零完成的标志位 0 未回零,1 已回零
home_done = 0 '上电进入未回零状态
MODBUS_BIT(0) = 0 '启动 按钮复归
MODBUS_BIT(1) = 0 '停止 按钮复归
MODBUS_BIT(4) = 0 '回零 按钮复归
MODBUS_BIT(5) = 0 '保存数据 按钮复归
MODBUS_BIT(1000)=0 'X轴 回零标志为0
MODBUS_BIT(1001)=0 'Y轴 回零标志为0
STOPTASK 2
RUNTASK 2, guidetask '启动手动运行任务
'**********按键扫描模块*********
WHILE 1 '扫描触摸屏端按钮输入
IF MODBUS_BIT(0)= 1 THEN '启动按钮按下
MODBUS_BIT(0) = 0 '按钮复归
IF run_state = 0 THEN '待机停止状态
IF home_done = 0 THEN'未回零时不启动运动
TRACE "before move need home"
ELSEIF home_done = 1 THEN'已回零启动任务运行
TRACE "move start"
STOPTASK 1 '软件安全,停止任务0
RUNTASK 1, movetask '启动运行加工任务1
ENDIF
ENDIF
ELSEIF MODBUS_BIT(1) = 1 THEN '停止按钮按下
TRACE "move stop"
MODBUS_BIT(1) = 0 '按钮复归
RAPIDSTOP(2)
STOPTASK 1
RAPIDSTOP(2)
WAIT IDLE(0)
run_state = 0 '停止标志
MODBUS_REG(0) = run_state '显示状态
ENDIF
IF MODBUS_BIT(4) = 1 THEN '回零按钮按下
MODBUS_BIT(4) = 0 '回零复归
IF run_state= 0 THEN
stoptask 1
runtask 1,home_task '启动回零任务
ENDIF
ENDIF
'''保存数据处理
IF MODBUS_BIT(5) = 1 THEN '保存数据 按钮按下
MODBUS_BIT(5) = 0 '保存数据 按钮复归
PRINT "写入数据到FLASH"
radius = MODBUS_IEEE(2)
length = MODBUS_IEEE(4)
FLASH_WRITE 0,radius,length'往扇区0写入数据
ENDIF
WEND
END
'**********加工运动模块*********
movetask: '运行画圆弧+跑道的任务
run_state =1 '进入运行状态
MODBUS_REG(0) = run_state
radius = MODBUS_IEEE(2) '读取半径
length = MODBUS_IEEE(4) '读取长度
TRIGGER
BASE(0,1) '选定 X Y轴
MOVEABS(0,0)
MOVE(length,0) '从原点开始走跑道轨迹
MOVECIRC(0,radius*2,0,radius,0)
MOVE(-length,0)
MOVECIRC(0,-radius*2,0,-radius,0)
WAIT IDLE(0)
run_state = 0'进入待机状态
MODBUS_REG(0) = run_state
END
'**********回零任务*********
home_task:
TRACE "enter home task"
run_state = 2 '回零标志
MODBUS_REG(0) = run_state '显示状态
TRIGGER
BASE(0,1)
CANCEL(2) AXIS(0)'先轴0,轴1停止
CANCEL(2) AXIS(1)
WAIT IDLE(0)
WAIT IDLE(1)
MOVEABS(0) AXIS(0)'虚拟设备轴0的归零,实际轴使用DATUM回零
MOVEABS(0) AXIS(1)'虚拟设备轴1的归零
WAIT IDLE(0)
MODBUS_BIT(1000)=1'设置轴0已归零的标志
WAIT IDLE(1)
MODBUS_BIT(1001)=1'设置轴1已归零的标志
home_done = 1
TRACE "home task done"
run_state = 0 '回到待机状态
MODBUS_REG(0) = run_state
END
'**********手动运动*********
guidetask:
WHILE 1
IF run_state = 0 THEN '判断是否处于停止状态
BASE(0)
IF MODBUS_BIT(10) = 1 THEN '左
MODBUS_BIT(10) = 0
VMOVE(-1)
ELSEIF MODBUS_BIT(11) = 1 THEN '右
MODBUS_BIT(11) = 0
VMOVE(1)
ELSEIF MTYPE = 10 OR MTYPE = 11 THEN '非VMOVE运动
CANCEL(2)
ENDIF
BASE(1)
IF MODBUS_BIT(20) = 1 THEN '左
MODBUS_BIT(20) = 0
VMOVE(-1)
ELSEIF MODBUS_BIT(21) = 1 THEN '右
MODBUS_BIT(21) = 0
VMOVE(1)
ELSEIF MTYPE = 10 OR MTYPE = 11 THEN '非VMOVE运动
CANCEL(2)
ENDIF
ENDIF
DELAY(100)
WEND
END
(3)应用程序运动效果
A.轴位置曲线XY模式下的合成插补轨迹
B.XY模式下的合成插补轨迹
本次,正运动技术经济型EtherCAT运动控制器(四):ModbusRTU或ModbusTcp与触摸屏通讯 ,就分享到这里。
更多精彩内容请关注“正运动小助手”公众号,需要相关开发环境与例程代码,请咨询正运动技术销售工程师:400-089-8936。
本文由正运动技术原创,欢迎大家转载,共同学习,一起提高中国智能制造水平。文章版权归正运动技术所有,如有转载请注明文章来源。