工控网首页
>

应用设计

>

快速入门 | 篇十二:正运动技术运动控制器U盘接口的使用

快速入门 | 篇十二:正运动技术运动控制器U盘接口的使用

之前正运动技术与大家分享了,运动控制器的固件升级、ZBasic程序开发、ZPLC程序开发、与触摸屏通讯和输入/输出IO的应用、运动控制器数据与存储的应用、运动控制器ZCAN、EtherCAT总线的使用、示波器的应用、多任务运行的特点、运动控制器中断的应用等。

今天,我们来讲解一下正运动技术运动控制器U盘接口的使用。

image.png

运动控制器中断的应用视频

以下是图文详解。

1、材料准备与控制器接线参考

1)材料准备

电脑1台,安装ZDevelop3.01以上版本软件。

控制器1个,U盘1个。

24V直流电源1个。

总线驱动器+电机(或步进驱动器+电机)若干。

控制器接线端子若干。

网线若干。

连接线若干。

输入输出设备、扩展模块、人机界面等根据实际需求选择。

2)控制器接线参考

image.png

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

示例:

DIM a,ARRAY1(2)   '变量、数组定义

a=123

ARRAY1(0)=10

ARRAY1(1)=20

IF  U_STATE = TRUE THEN   '判断U盘是否插入

  U_WRITE 0,a,ARRAY1     '将变量、数组写入U盘

  a=456

  ARRAY1(0)=11

  U_READ  0,a,ARRAY1     '读取U盘文件SD0数据

 

  IF a <> 123 THEN       '判断U盘读写是否成功

    PRINT "U盘读取错误"

  ELSE

    PRINT "U盘成功读取"

  ENDIF 

ELSE

  PRINT "U盘未插入"

ENDIF

END

注意U盘数据的存储和读出的次序要一致。

没有控制器时,可以使用仿真器,在编程软件的根目录下新建udisk文件模拟U盘。将U盘指令操作要用到的文件放入此文件夹即可。

image.png

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

指令读取结果:

image.png

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=FALSE then

    table(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=1 

      else

        print "没有文件"

      endif

    elseif MODBUS_BIT(10)=1 and result=-1 then

      MODBUS_BIT(10)=0

      result=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盘文件

      if result=-1 then

        filenum=filenum+1

      else

        result=FILE"find_prev",1200

        warnstr=" The End File"

        HMI_SHOWWINDOW(100)

      endif

      

    elseif MODBUS_BIT(30)=1 then

      MODBUS_BIT(30)=0 

      result=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)=1 then'对table或VR进行操作

      MODBUS_BIT(40)=0

      STICK_WRITE(10,0,5,1)    'table输出到U盘,从table(0)开始取五个元素

      print "table输出到U盘"

    

    elseif MODBUS_BIT(41)=1 then

      MODBUS_BIT(41)=0

      STICK_READ(10,0,1)    'U盘输出到table(0)开始地址

      

      print "U盘输出到table"

      

    '************U盘数据读写************

    elseif MODBUS_BIT(50)=1 then

      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)=1 then

      MODBUS_BIT(61)=0

      file"copy_to","sd1.bin"   '读取sd1的数据写入flash块1

      print "u盘数据写入flash"

      

      flash_read 1,a,aa

          print *aa

  

      '************读取U盘文件内容************

      elseif MODBUS_BIT(11)=1 then

      MODBUS_BIT(11)=0

      FILE"LOAD_BYTE","00.txt",200,10,0   '读取u盘中文本文件数据保存到table200开始的10个地址中

      print "读取u盘txt文件"

      

    endif  

  endif

end sub

HMI组态界面:

image.png

没有触摸屏时,打开ZDevelop编程软件根目录找到screen文件夹,打开里面的xplcterm应用程序,连接到控制器即可进行触摸屏仿真。

image.png

正运动技术运动控制器U盘接口的使用就分享到这里,更多精彩内容,请关注我们的公众号。  

本文由正运动小助手原创,欢迎大家转载,共同学习,一起提高中国智能制造水平。文章版权归正运动技术所有,如有转载请注明文章来源。

审核编辑(
王静
)
投诉建议

提交

查看更多评论
其他资讯

查看更多

正运动技术自主研发运动控制实时软核MotionRT7软件安装流程

Windows实时运动控制软核(六):LOCAL高速接口测试之Matlab

Windows实时运动控制软核(五):LOCAL高速接口测试之VC6.0

Windows实时运动控制软核(四):LOCAL高速接口测试之VB.NET

Windows实时运动控制软核(三):LOCAL高速接口测试之C++