時間:2020-11-26 09:37:07來源:正運動技術(shù)
之前正運動技術(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ù)需求選用
二、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ù)量,不同的控制器存儲容量大小不同。
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。
控制器中MODBUS字寄存器占用同一片系統(tǒng)變量空間,其中一個LONG占用兩個REG地址,一個IEEE也占用兩個REG地址,使用時要注意錯開字寄存器編號地址。
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存儲空間安排如下:
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ù)存儲單元的取值范圍如下表所示:
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演示例程及示波器演示圖。
任務(wù)1運行,執(zhí)行凸輪表指令,得出波形如下圖:
今天,正運動技術(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è)。
標(biāo)簽:
中國傳動網(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é)任。
產(chǎn)品新聞
更多>以簡驅(qū)繁,精準(zhǔn)智控 | 維智S1系列新一代...
2024-11-01
2024-10-31
2024-10-31
2024-10-31
2024-10-31
2024-10-29
推薦專題
更多>