点击蓝字 关注伺服与运动控制
之前正运动技术与大家分享了,运动控制器的固件升级、ZBasic程序开发、ZPLC程序开发、与触摸屏通讯和输入/输出IO的应用、运动控制器数据与存储的应用、运动控制器ZCAN、EtherCAT总线的使用、示波器的应用、多任务运行的特点、运动控制器中断的应用等。
今天,我们来讲解一下正运动技术运动控制器U盘接口的使用。
video: https://mp.weixin.qq.com/mp/readtemplate?t=pages/video_player_tmpl&action=mpvideo&auto=0&vid=wxv_1574117218324381699
运动控制器中断的应用视频
以下是图文详解。
1、材料准备与控制器接线参考
1)材料准备
电脑1台,安装ZDevelop3.01以上版本软件。
控制器1个,U盘1个。
24V直流电源1个。
总线驱动器+电机(或步进驱动器+电机)若干。
控制器接线端子若干。
网线若干。
连接线若干。
输入输出设备、扩展模块、人机界面等根据实际需求选择。
2)控制器接线参考
2、U盘的用途
不同型号的控制器U盘接口的使用方法都是相同的。
将U盘插在控制器上的UDISK端口即可,控制器上电后有U盘插入时,U盘指示灯亮。
U盘主要由两方面的用途:
1)程序升级
通过U盘口,下载打包好的ZAR程序包,方便客户更新系统程序。
程序升级之前事先将ZAR程序包下载到U盘里面。使用指令加载U盘文件成功后,ZAR程序自动开始运行。
2)U盘与寄存器数据交互
U盘读写变量和数组。
FLASH数据拷贝:多个控制器中FLASH存储的数据可以通过U盘来相互传递。
VR寄存器、TABLE寄存器与U盘里的数据互相传递。
读写文件类型为SD(filenum).BIN或SD(filenum).CSV,不同的指令可操作的文件类型有所区别。
3、U盘读写指令
U_STATE:U盘状态判断,检测到有U盘插入返回TRUE,否则返回FALSE。
1)U盘读写变量、数组
U_READ:从U盘中读取数据到变量或数组里。U_READ2:从U盘中读取数据到变量或数组里,可选读取的起始位置。U_WRITE:存储变量或者数组,数组的单个或部分元素到外部存储器里面。
2)U盘与寄存器数据交互
U盘与TABLE和VR数据读写的格式相同。
STICK_READ:从U盘读取数据到table。
STICK_WRITE:拷贝TABLE的数据到U盘。
STICK_READVR:从U盘读取数据到VR。
STICK_WRITEVR:拷贝VR的数据到U盘。
4、U盘读写示例
控制器对U盘进行读写操作之前,首先要确保U盘已经插上,使用U_STATE指令判断U盘状态。
操作指令:U_READ,U_WRITE
示例:
DIMa,ARRAY1(2) '变量、数组定义a=123ARRAY1(0)=10ARRAY1(1)=20
IFU_STATE = TRUE THEN '判断U盘是否插入U_WRITE0,a,ARRAY1 '将变量、数组写入U盘a=456ARRAY1(0)=11 U_READ 0,a,ARRAY1 '读取U盘文件SD0数据 IF a <> 123 THEN '判断U盘读写是否成功PRINT"U盘读取错误"ELSEPRINT"U盘成功读取" ENDIF ELSE PRINT "U盘未插入"ENDIFEND
注意U盘数据的存储和读出的次序要一致。
没有控制器时,可以使用仿真器,在编程软件的根目录下新建udisk文件模拟U盘。将U盘指令操作要用到的文件放入此文件夹即可。
5、PILE指令U盘相关操作
1)U盘zar文件操作。
FILE “LOAD_ZAR”,”main” ‘下载U盘中的mian.zar包FILE “FIND_FIRST”, “.zar” ,0 ‘查找U盘中的zar包,结果返回到vrstring(0)FILE “FIND_NEXT”,10 ‘查找下一个zar文件存储结果到vrstring(10)FILE “FIND_PREV”,20 ‘查找上一个zar文件存储结果vrstring(20)
2)U盘与FLASH数据操作。
FILE “COPY_FROM”,”sd0.bin” ‘拷贝控制器上flash0块数据到U盘FILE “COPY_TO”,” sd0.bin” ‘拷贝U盘sd0.bin数据到控制器flash
FLASH块号与SD文件的编号是一一对应的,不需要要指定。
3)删除U盘文件,支持删除bin文件和z3p文件。
FILE"DELETE" , "sd0.bin" ‘删除U盘上名称为sd0.bin的文件
4)以字节方式加载U盘上的文件,支持读取多种类型的文件。
FILE "LOAD_BYTE", "00.txt", 200, 10, 0 ‘读取U盘上名称为00.txt的文件,将读取结果转化成ASCII码,存储在TABLE(200)开始的10个空间内。
最后一个参数offset为文件开始读取的字节偏移,设为0表示从第一个字符开始读取;设为1表示从第二个字符开始读取,跳过第一个字符,详情参见后方程序演示。
txt文件内容:ZMOTION
指令读取结果:
offset=0
TABLE(200):总字节数TABLE(201):读取到的第一个字节TABLE(202):读取到的第二个字节TABLE(200+n):读取到的第N个字节
6、U盘使用演示例程
例程使用HMI组态传递MODBUS_BIT位寄存器的值来控制U盘指令的执行。
global sub main_int() '初始化函数 APP_PASS(123) VRSTRING(1200,20)="未扫描" global warnstr(20) '定义提示信息的数组 dim result 'file指令读取结果标志 result=0 '返回-1为true,0为false dim filenum 'zar文件编号 filenum=0 for i=0 to 100 table(i)=i next dim u,uu(8) 'U盘读写参数 u=10 for i=0 to 7 uu(i)=i next dim a,aa(8) 'FLASH读写参数end sub
global sub main_scan() '周期函数 if U_STATE=TRUE then '获取U盘状态并显示连接或未连接table(100)=1 elseif U_STATE=FALSEthentable(100)=0 endif if U_STATE=TRUE then '判断U盘是否插入 '************加载U盘的升级ZAR程序************ if MODBUS_BIT(0)=1 then '判断按键是否按下 MODBUS_BIT(0)=0 '按键恢复result=FILE"find_first",".zar",1200',zar可以替换为.bin,但是无法用load_bin下载 if result=-1 then '判断zar程序读取是否成功 filenum=1else print "没有文件" endif
elseif MODBUS_BIT(10)=1andresult=-1then MODBUS_BIT(10)=0result=FILE"find_prev",1200'搜索上一个U盘文件 if result=-1 then filenum=filenum-1 else result=FILE"find_next",1200 warnstr= "The First File" HMI_SHOWWINDOW(100) endif elseif MODBUS_BIT(20)=1 and result=-1 then MODBUS_BIT(20)=0 result=FILE"find_next",1200 '搜索上一个U盘文件ifresult=-1then filenum=filenum+1elseresult=FILE"find_prev",1200 warnstr=" The End File" HMI_SHOWWINDOW(100) endif elseif MODBUS_BIT(30)=1then MODBUS_BIT(30)=0result=FILE"load_zar",VRSTRING(1200,20) '加载U盘里面的ZAR升级文件 if result =0 then result=FILE"find_first",".zar",1200 warnstr=" Download Failed" HMI_SHOWWINDOW(100) endif '************U盘与TABLE数据交互************ 'TABLE读写指令:STICK_WRITE STICK_READ 'VR读写指令:STICK_WRITEVR STICK_READVR elseif MODBUS_BIT(40)=1then'对table或VR进行操作 MODBUS_BIT(40)=0 STICK_WRITE(10,0,5,1) 'table输出到U盘,从table(0)开始取五个元素
print "table输出到U盘" elseif MODBUS_BIT(41)=1then MODBUS_BIT(41)=0 STICK_READ(10,0,1) 'U盘输出到table(0)开始地址 print "U盘输出到table" '************U盘数据读写************ elseif MODBUS_BIT(50)=1then MODBUS_BIT(50)=0 U_WRITE 1,u,uu '数据写入U盘,对变量和数组进行操作 print "数据写入U盘" elseif MODBUS_BIT(51)=1 then MODBUS_BIT(51)=0 U_READ 1,u,uu 'U盘数据读出 print "U盘数据读出" '************U盘与FLASH数据交互************ elseif MODBUS_BIT(60)=1 then MODBUS_BIT(60)=0 FLASH_WRITE 3,a aa file"copy_from","sd3.bin"'本条指令sd num就是指flash块的编号,此时将flash块3的数据复制到u盘 print "flash块的数据复制到u盘" elseif MODBUS_BIT(61)=1then MODBUS_BIT(61)=0file"copy_to","sd1.bin"'读取sd1的数据写入flash块1 print "u盘数据写入flash" flash_read 1,a,aa print *aa '************读取U盘文件内容************ elseif MODBUS_BIT(11)=1then MODBUS_BIT(11)=0FILE"LOAD_BYTE","00.txt",200,10,0'读取u盘中文本文件数据保存到table200开始的10个地址中 print "读取u盘txt文件" endif endifend sub
HMI组态界面:
没有触摸屏时,打开ZDevelop编程软件根目录找到screen文件夹,打开里面的xplcterm应用程序,连接到控制器即可进行触摸屏仿真。
正运动技术运动控制器U盘接口的使用就分享到这里,更多精彩内容,请关注我们的公众号。
本文由正运动小助手原创,欢迎大家转载,共同学习,一起提高中国智能制造水平。文章版权归正运动技术所有,如有转载请注明文章来源。
往期精彩回顾
快速入门 | 篇十一:正运动技术运动控制器中断的应用
快速入门 | 篇十:运动控制器多任务运行特点快速入门 | 篇九:如何进行运动控制器示波器的应用?
快速入门 | 篇八:如何进行运动控制器EtherCAT总线的基础使用?
快速入门 | 篇七:如何进行运动控制器ZCAN总线扩展模块的使用?
快速入门 | 篇六:如何进行运动控制器数据与存储的应用?
快速入门 | 篇五:如何进行运动控制器输入/输出IO的应用?
快速入门丨篇四:如何进行运动控制器与触摸屏通讯?
快速入门 | 篇三:如何进行运动控制器ZPLC程序开发?
快速入门 | 篇二:如何进行运动控制器ZBasic程序开发?
快速入门 | 篇一:如何进行运动控制器固件升级?
运动控制卡应用开发教程之LabVIEW
运动控制卡应用开发教程之VC6.0
运动控制卡应用开发教程之使用Qt
正运动技术XPLC516E 的开放式Linux 平台使用(上)
正运动技术XPLC516E 的开放式Linux 平台使用(下)
关于正运动技术
正运动技术是一家专注于运动控制技术研发与应用的国家级高新技术企业,主要从事运动控制器、运动控制卡、IO扩展模块、运动显控一体机等系列产品的研发、生产、销售和服务。
公司汇集了来自华为、中兴等公司的优秀人才,在坚持自主创新的同时,积极联合各大高校致力于运动控制技术研究与应用,是国内工控领域发展最快的企业之一,也是国内完整掌握运动控制核心技术和实时工控软件平台技术的企业。
- END -
热门文章
贝加莱2020用户会议
禾川深度布建市场营销网络
ABB收购Codian Robotics
PID原理和参数调试
西门子V90伺服智能分拣
|