技術(shù)頻道

娓娓工業(yè)
您現(xiàn)在的位置: 中國傳動網(wǎng) > 技術(shù)頻道 > 技術(shù)百科 > 快速入門丨篇六:如何進(jìn)行運動控制器數(shù)據(jù)與存儲的應(yīng)用?

快速入門丨篇六:如何進(jìn)行運動控制器數(shù)據(jù)與存儲的應(yīng)用?

時間:2020-11-26 09:37:07來源:正運動技術(shù)

導(dǎo)語:?

  之前正運動技術(shù)與大家分享了,運動控制器的固件升級、ZBasic程序開發(fā)、ZPLC程序開發(fā)、與觸摸屏通訊和輸入/輸出IO的應(yīng)用等。

  今天,我們來講解一下正運動技術(shù)運動控制器數(shù)據(jù)與存儲的應(yīng)用。

  

   視頻教程:視頻教程:如何進(jìn)行運動控制器數(shù)據(jù)與存儲的應(yīng)用?》

  

   一、材料準(zhǔn)備與控制器接線參考

  材料準(zhǔn)備:

  1、電腦1臺,安裝ZDevelop3.01以上版本軟件

  2、控制器1個

  3、24V直流電源1個

  4、總線驅(qū)動器+電機(或步進(jìn)驅(qū)動器+電機)若干

  5、控制器接線端子若干

  6、網(wǎng)線若干

  7、連接線若干

  另:IO設(shè)備、擴展模板、觸摸屏等根據(jù)需求選用

  

  1.png

  

   二、Basic編程數(shù)據(jù)定義

  

  1、變量定義

  變量是用戶可以自定義的變量,變量用于暫時保存與外部設(shè)備的通信數(shù)據(jù)或任務(wù)內(nèi)部處理需要的數(shù)據(jù),換言之,它是用于保存帶名稱和數(shù)據(jù)類型等屬性的數(shù)據(jù),無需指定變量與存儲器地址之間的分配。

  1)變量定義指令:

  分為全局變量(GLOBAL)、文件模塊變量(DIM)、局部變量(LOCAL)三種。

  全局變量可以在項目內(nèi)的任意文件中使用;

  文件模塊變量只能在本程序文件內(nèi)部使用;

  局部變量主要用在SUB中,其他文件無法使用。

  變量可以不經(jīng)過定義直接賦值,此時的變量默認(rèn)為文件模塊變量。

  2)示例:

  GLOBAL     g_var2              '定義全局變量g_var2

  DIM     VAR1                      '定義文件變量VAR1

  SUB     aaa()

                     LOCAL  v1      '定義局部變量V1

                      v1=100

  END SUB

  

  2、常量定義

  

  CONST指令定義常量,一次只能定義一個數(shù)據(jù),且定義與賦值必須在同一行。常量可定義為全局常量GLOBAL CONST,全局常量可以在項目內(nèi)的任意文件中使用,不存在LOCAL CONST的寫法。

  常數(shù)與變量不同,不是保存在存儲器中的信息,常見的常量有布爾型,字符串型,時間型,日期型,整型等。

  示例:

  CONST         MAX_VALUE = 100000     '定義文件常量

  GLOBAL CONST          MAX_AXIS=6     '定義全局常量

  

  3、數(shù)組定義

  

  數(shù)組指定是指將相同屬性的數(shù)據(jù)集中后對其進(jìn)行統(tǒng)一定義,并對數(shù)據(jù)個數(shù)進(jìn)行指定。構(gòu)成數(shù)組指定的各數(shù)據(jù)稱為“元素”。

  數(shù)組定義相關(guān)指令為GLOBAL、DIM,不支持LOCAL定義。

  示例:

  DIM     array1(15)         '定義文件數(shù)組,此時可使用的數(shù)組空間編號為0~14,共15個空間

  GLOBAL     array2(10)             '定義全局?jǐn)?shù)組

  

  4、子函數(shù)定義

  

  使用SUB指令定義子函數(shù),子函數(shù)可以定義為文件SUB,或前面增加GLOBAL指令定義為全局使用的SUB過程,跨文件調(diào)用子函數(shù)必須定義為全局SUB過程。

  示例:

  SUB sub1()         '定義過程SUB1,只能在當(dāng)前文件中使用

              ?1

              ...

  END SUB

  GLOBAL SUB g_sub2()                 '定義全局過程g_sub2,可以在任意文件中使用

                 ?2

               ...

  END SUB

  

   三、控制器內(nèi)部寄存器

  

  控制器的寄存器主要有TABLE、FLASH、VR、MODBUS寄存器。將ZDevelop軟件與控制器連接后,可通過ZDevelop軟件菜單欄“控制器”~“控制器狀態(tài)”窗口查看該控制器各寄存器的空間大小,也可以通過在線命令功能在“命令與輸出”窗口輸入“?*max”來查看各寄存器的數(shù)量,不同的控制器存儲容量大小不同。

  

  2.png

  

  1、TABLE數(shù)組

  

  TABLE是控制器自帶的一個超大數(shù)組,數(shù)據(jù)類型為32位浮點型(4系列及以上為64位浮點型),掉電不保存。

  編寫程序時,TABLE數(shù)組不需要再定義,可直接使用,索引下標(biāo)從0開始。

  ZBasic的某些指令可以直接讀取TABLE內(nèi)的值作為參數(shù),TABLE使用時先將參數(shù)存儲在TABLE的某個位置,再使用指令參數(shù)調(diào)用TABLE數(shù)據(jù)。比如CAM,CAMBOX,CONNFRAME,CONNREFRAME,MOVE_TURNABS,B_SPLINE,CAN,CRC16,DTSMOOTH,PITCHSET,HW_PSWITCH等指令。

  示波器采樣的參數(shù)存儲在TABLE數(shù)組的末尾,因此在開發(fā)應(yīng)用中要注意TABLE區(qū)域的分配與使用,不要與示波器采樣的數(shù)據(jù)存儲區(qū)域重合。

  TABLE指令讀寫數(shù)據(jù),示例:

  TABLE(0) = 10                         'table(0)賦值10

  TABLE(10,100,200,300)             '批量賦值,table(10)賦值100,table(11)賦值200,table(12)賦值300

  TSIZE指令可讀取TABLE空間大小,還可修改TABLE空間大小(不能超出TABLE最大空間),示例:

  PRINT     TSIZE                 '打印出控制器table大小

  TSIZE=10000                 '設(shè)置table的大小,不能超過控制器table最大size

  TABLESTRING指令按照字符串格式打印TABLE里的數(shù)據(jù),示例:

  TABLE(100,68,58,92)

  PRINT TABLESTRING(100,3)                 '字符串格式打印數(shù)據(jù),轉(zhuǎn)換為ASCII碼

  打印結(jié)果:D:\

  

  2、FLASH

  

  FLASH具有掉電存儲功能,讀寫次數(shù)限制為十萬次左右,長期不上電也不會丟失數(shù)據(jù)。

  一般用于存放較大的,不需要頻繁讀寫的數(shù)據(jù),比如加工的工藝文件??梢砸粋€扇區(qū)或者幾個扇區(qū)來保存一個加工的加工工藝文件。

  讀與寫時要注意保證要操作的變量,數(shù)組等名稱和次序高度一致,如果不一致會導(dǎo)致數(shù)據(jù)錯亂。

  FLASH使用時是按塊編號,塊數(shù)FLASH_SECTES指令查看,不同的控制器FLASH塊數(shù)與塊數(shù)據(jù)大小都不同,每塊數(shù)據(jù)大小FLASH_SECTSIZE指令查看。

  FLASH使用方法:

  GLOBAL     VAR

  GLOBAL         ARRAY1(200)

  DIM     ARRAY2(100)

      '數(shù)據(jù)存儲到FLASH塊:把VAR,ARRAY1,ARRAY2數(shù)據(jù)依次寫入FLASH塊1

  FLASH_WRITE 1,VAR,ARRAY1,ARRAY2

      'FLASH塊數(shù)據(jù)讀取:把FLASH塊1的數(shù)據(jù)依次讀入VAR,ARRAY1,ARRAY2

  FLASH_READ 1,VAR,ARRAY1,ARRAY2         '讀取次序與寫入次序一致

  

  3、VR寄存器

  

  VR寄存器具有掉電存儲功能,可無限次讀寫,但數(shù)據(jù)容量較小,一般只有1024或者更少,用于保存需要不斷修改的數(shù)據(jù),例如軸參數(shù)、坐標(biāo)等。

  VR的掉電保存原理是控制器內(nèi)部有鐵電存儲器,但數(shù)據(jù)容量較小,所以數(shù)據(jù)量較大的或需要長久保存的數(shù)據(jù)最好寫到FLASH塊或?qū)С龅経盤。

  VR存儲數(shù)據(jù)類型為32位浮點型(4系列及以上為64位浮點數(shù)),使用VR_INT強制保存為32位整型,VRSTRING強制保存為字符串,保存的是ASCII碼,一個字符占用一個VR。

  VR、VR_INT,VRSTRING共用一個空間。寄存器讀寫方法相同。

  VR使用方法:

  VR(0) = 10.58                     '賦值

  aaa = VR(0)                             '讀取

  

  4、MODBUS寄存器

  

  MODBUS通訊的數(shù)據(jù)使用MODBUS寄存器存儲,控制器的MODBUS寄存器符合MODBUS標(biāo)準(zhǔn)通訊協(xié)議,分為位寄存器和字寄存器兩類。

  位寄存器:MODBUS_BIT,觸摸屏一般稱為MODBUS_0X,布爾型

  字寄存器:包含MODBUS_REG(16位整型)、MODBUS_LONG(32位整型)、MODBUS_IEEE(32位浮點型)、MODBUS_STRING(8位字節(jié)型),觸摸屏一般叫MODBUS_4X。

  

  3.png

  

  控制器中MODBUS字寄存器占用同一片系統(tǒng)變量空間,其中一個LONG占用兩個REG地址,一個IEEE也占用兩個REG地址,使用時要注意錯開字寄存器編號地址。

  

  4.png

  

  MODBUS_LONG(0)占用MODBUS_REG(0)與MODBUS_REG(1)兩個REG地址。

  MODBUS_LONG(1)占用MODBUS_REG(1)與MODBUS_REG(2)兩個REG地址。

  MODBUS_IEEE(0)占用MODBUS_REG(0)與MODBUS_REG(1)兩個REG地址。

  MODBUS_IEEE(1)占用MODBUS_REG(1)與MODBUS_REG(2)兩個REG地址。

  所以要注意MODBUS_REG、MODBUS_LONG、MODBUS_IEEE地址在用戶應(yīng)用程序中不能重疊。

  控制器的MODBUS存儲空間安排如下:

  

  5.png

  

  MODBUS指令

  MODBUS通訊需要將數(shù)據(jù)放在MODBUS寄存器內(nèi)進(jìn)行傳遞。

  有專門的MODBUS通訊指令對MODBUS寄存器的數(shù)據(jù)進(jìn)行讀寫與寄存器之間的數(shù)據(jù)傳遞。

  MODBUS讀/寫語法格式相同,如下所示:

  MODBUSM_REGGET (startreg, num, local_reg)

              startreg:對端的寄存器起始編號,從0開始

              num:寄存器個數(shù)

              local_reg:從本地系統(tǒng)MODBUS寄存器中取值,起始編號

  示例:

  MODBUSM_REGGET(0,10,0) '把本地位寄存器0~9復(fù)制到通訊對端的寄存器0~9

  MODBUS指令如下,指令詳細(xì)用法參見Basic手冊:

  MODBUS_BIT -- 位寄存器

  MODBUS_IEEE -- 字寄存器-32位浮點型

  MODBUS_LONG -- 字寄存器-32位整型

  MODBUS_REG -- 字寄存器-16位整型

  MODBUS_STRING -- 字寄存器-字節(jié)

  MODBUSM_DES -- modbus通訊連接

  MODBUSM_DES2 -- 控制器間網(wǎng)口通訊

  MODBUSM_STATE -- modbus通訊狀態(tài)

  MODBUSM_REGSET -- 寫對端保持寄存器

  MODBUSM_REGGET -- 讀對端保持寄存器

  MODBUSM_3XGET -- 讀對端輸入寄存器

  MODBUSM_BITSET -- 寫對端線圈

  MODBUSM_BITGET -- 讀對端線圈

  MODBUSM_1XGET -- 讀對端離散輸入

  

   四、數(shù)據(jù)類型與數(shù)據(jù)轉(zhuǎn)換

  

  1、數(shù)據(jù)類型

  

  常用寄存器存儲的數(shù)據(jù)類型和每個數(shù)據(jù)存儲單元的取值范圍如下表所示:

  

  6.png

  

  2、數(shù)據(jù)轉(zhuǎn)換

  不同類型數(shù)據(jù)之間的操作,會產(chǎn)生下列問題:

  A.數(shù)據(jù)丟失:浮點型向整型轉(zhuǎn)換時會丟失小數(shù)部分。

  示例:

  VR(0)=10.314

  MODBUS_REG(0)=0

  MODBUS_REG(0)=VR(0)

  ?MODBUS_REG(0) '結(jié)果為10

  B.強制轉(zhuǎn)換:整型存儲到浮點型寄存器后會變成浮點型,再使用整型操作數(shù)據(jù)可能會不正確。

  C.單精度數(shù)據(jù)只有7位有效數(shù)值,在計算的過程中如果有長期累加的數(shù)值,建議使用4系列控制器。

  

  五、Basic演示例程

  

  以下是Basic演示例程及示波器演示圖。

  7.png

  8.png

  9.png

  10.png

  任務(wù)1運行,執(zhí)行凸輪表指令,得出波形如下圖:

  

  11.png

  

  今天,正運動技術(shù)運動控制器數(shù)據(jù)與存儲的應(yīng)用分享到這里,更多精彩內(nèi)容,請關(guān)注我們的公眾號。示波器圖前面加一句

  本文由正運動小助手原創(chuàng),歡迎大家轉(zhuǎn)載,共同學(xué)習(xí),一起提高中國智能制造水平。文章版權(quán)歸正運動技術(shù)所有,如有轉(zhuǎn)載請注明文章來源。

  

  正運動技術(shù)是一家專注于運動控制技術(shù)研發(fā)與應(yīng)用的國家級高新技術(shù)企業(yè),主要從事運動控制器、運動控制卡、IO擴展模塊、運動顯控一體機等系列產(chǎn)品的研發(fā)、生產(chǎn)、銷售和服務(wù)。

  公司匯集了來自華為、中興等公司的優(yōu)秀人才,在堅持自主創(chuàng)新的同時,積極聯(lián)合各大高校致力于運動控制技術(shù)研究與應(yīng)用,是國內(nèi)工控領(lǐng)域發(fā)展最快的企業(yè)之一,也是國內(nèi)完整掌握運動控制核心技術(shù)和實時工控軟件平臺技術(shù)的企業(yè)。

12.png

  

標(biāo)簽:

點贊

分享到:

上一篇:快速入門丨篇五:如何進(jìn)行運...

下一篇:快速入門丨篇七:如何進(jìn)行運...

中國傳動網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來源:中國傳動網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國傳動網(wǎng)(m.u63ivq3.com)獨家所有。如需轉(zhuǎn)載請與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個人轉(zhuǎn)載使用時須注明來源“中國傳動網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。

本網(wǎng)轉(zhuǎn)載并注明其他來源的稿件,均來自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請保留稿件來源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。

網(wǎng)站簡介|會員服務(wù)|聯(lián)系方式|幫助信息|版權(quán)信息|網(wǎng)站地圖|友情鏈接|法律支持|意見反饋|sitemap

傳動網(wǎng)-工業(yè)自動化與智能制造的全媒體“互聯(lián)網(wǎng)+”創(chuàng)新服務(wù)平臺

網(wǎng)站客服服務(wù)咨詢采購咨詢媒體合作

Chuandong.com Copyright ?2005 - 2024 ,All Rights Reserved 深圳市奧美大唐廣告有限公司 版權(quán)所有
粵ICP備 14004826號 | 營業(yè)執(zhí)照證書 | 不良信息舉報中心 | 粵公網(wǎng)安備 44030402000946號