時間:2020-11-26 09:37:07來源:正運動技術
之前正運動技術與大家分享了,運動控制器的固件升級、ZBasic程序開發、ZPLC程序開發、與觸摸屏通訊和輸入/輸出IO的應用等。
今天,我們來講解一下正運動技術運動控制器數據與存儲的應用。
視頻教程:《視頻教程:如何進行運動控制器數據與存儲的應用?》
一、材料準備與控制器接線參考
材料準備:
1、電腦1臺,安裝ZDevelop3.01以上版本軟件
2、控制器1個
3、24V直流電源1個
4、總線驅動器+電機(或步進驅動器+電機)若干
5、控制器接線端子若干
6、網線若干
7、連接線若干
另:IO設備、擴展模板、觸摸屏等根據需求選用
二、Basic編程數據定義
1、變量定義
變量是用戶可以自定義的變量,變量用于暫時保存與外部設備的通信數據或任務內部處理需要的數據,換言之,它是用于保存帶名稱和數據類型等屬性的數據,無需指定變量與存儲器地址之間的分配。
1)變量定義指令:
分為全局變量(GLOBAL)、文件模塊變量(DIM)、局部變量(LOCAL)三種。
全局變量可以在項目內的任意文件中使用;
文件模塊變量只能在本程序文件內部使用;
局部變量主要用在SUB中,其他文件無法使用。
變量可以不經過定義直接賦值,此時的變量默認為文件模塊變量。
2)示例:
GLOBAL g_var2 '定義全局變量g_var2
DIM VAR1 '定義文件變量VAR1
SUB aaa()
LOCAL v1 '定義局部變量V1
v1=100
END SUB
2、常量定義
CONST指令定義常量,一次只能定義一個數據,且定義與賦值必須在同一行。常量可定義為全局常量GLOBAL CONST,全局常量可以在項目內的任意文件中使用,不存在LOCAL CONST的寫法。
常數與變量不同,不是保存在存儲器中的信息,常見的常量有布爾型,字符串型,時間型,日期型,整型等。
示例:
CONST MAX_VALUE = 100000 '定義文件常量
GLOBAL CONST MAX_AXIS=6 '定義全局常量
3、數組定義
數組指定是指將相同屬性的數據集中后對其進行統一定義,并對數據個數進行指定。構成數組指定的各數據稱為“元素”。
數組定義相關指令為GLOBAL、DIM,不支持LOCAL定義。
示例:
DIM array1(15) '定義文件數組,此時可使用的數組空間編號為0~14,共15個空間
GLOBAL array2(10) '定義全局數組
4、子函數定義
使用SUB指令定義子函數,子函數可以定義為文件SUB,或前面增加GLOBAL指令定義為全局使用的SUB過程,跨文件調用子函數必須定義為全局SUB過程。
示例:
SUB sub1() '定義過程SUB1,只能在當前文件中使用
?1
...
END SUB
GLOBAL SUB g_sub2() '定義全局過程g_sub2,可以在任意文件中使用
?2
...
END SUB
三、控制器內部寄存器
控制器的寄存器主要有TABLE、FLASH、VR、MODBUS寄存器。將ZDevelop軟件與控制器連接后,可通過ZDevelop軟件菜單欄“控制器”~“控制器狀態”窗口查看該控制器各寄存器的空間大小,也可以通過在線命令功能在“命令與輸出”窗口輸入“?*max”來查看各寄存器的數量,不同的控制器存儲容量大小不同。
1、TABLE數組
TABLE是控制器自帶的一個超大數組,數據類型為32位浮點型(4系列及以上為64位浮點型),掉電不保存。
編寫程序時,TABLE數組不需要再定義,可直接使用,索引下標從0開始。
ZBasic的某些指令可以直接讀取TABLE內的值作為參數,TABLE使用時先將參數存儲在TABLE的某個位置,再使用指令參數調用TABLE數據。比如CAM,CAMBOX,CONNFRAME,CONNREFRAME,MOVE_TURNABS,B_SPLINE,CAN,CRC16,DTSMOOTH,PITCHSET,HW_PSWITCH等指令。
示波器采樣的參數存儲在TABLE數組的末尾,因此在開發應用中要注意TABLE區域的分配與使用,不要與示波器采樣的數據存儲區域重合。
TABLE指令讀寫數據,示例:
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 '設置table的大小,不能超過控制器table最大size
TABLESTRING指令按照字符串格式打印TABLE里的數據,示例:
TABLE(100,68,58,92)
PRINT TABLESTRING(100,3) '字符串格式打印數據,轉換為ASCII碼
打印結果:D:\
2、FLASH
FLASH具有掉電存儲功能,讀寫次數限制為十萬次左右,長期不上電也不會丟失數據。
一般用于存放較大的,不需要頻繁讀寫的數據,比如加工的工藝文件。可以一個扇區或者幾個扇區來保存一個加工的加工工藝文件。
讀與寫時要注意保證要操作的變量,數組等名稱和次序高度一致,如果不一致會導致數據錯亂。
FLASH使用時是按塊編號,塊數FLASH_SECTES指令查看,不同的控制器FLASH塊數與塊數據大小都不同,每塊數據大小FLASH_SECTSIZE指令查看。
FLASH使用方法:
GLOBAL VAR
GLOBAL ARRAY1(200)
DIM ARRAY2(100)
'數據存儲到FLASH塊:把VAR,ARRAY1,ARRAY2數據依次寫入FLASH塊1
FLASH_WRITE 1,VAR,ARRAY1,ARRAY2
'FLASH塊數據讀取:把FLASH塊1的數據依次讀入VAR,ARRAY1,ARRAY2
FLASH_READ 1,VAR,ARRAY1,ARRAY2 '讀取次序與寫入次序一致
3、VR寄存器
VR寄存器具有掉電存儲功能,可無限次讀寫,但數據容量較小,一般只有1024或者更少,用于保存需要不斷修改的數據,例如軸參數、坐標等。
VR的掉電保存原理是控制器內部有鐵電存儲器,但數據容量較小,所以數據量較大的或需要長久保存的數據最好寫到FLASH塊或導出到U盤。
VR存儲數據類型為32位浮點型(4系列及以上為64位浮點數),使用VR_INT強制保存為32位整型,VRSTRING強制保存為字符串,保存的是ASCII碼,一個字符占用一個VR。
VR、VR_INT,VRSTRING共用一個空間。寄存器讀寫方法相同。
VR使用方法:
VR(0) = 10.58 '賦值
aaa = VR(0) '讀取
4、MODBUS寄存器
MODBUS通訊的數據使用MODBUS寄存器存儲,控制器的MODBUS寄存器符合MODBUS標準通訊協議,分為位寄存器和字寄存器兩類。
位寄存器:MODBUS_BIT,觸摸屏一般稱為MODBUS_0X,布爾型
字寄存器:包含MODBUS_REG(16位整型)、MODBUS_LONG(32位整型)、MODBUS_IEEE(32位浮點型)、MODBUS_STRING(8位字節型),觸摸屏一般叫MODBUS_4X。
控制器中MODBUS字寄存器占用同一片系統變量空間,其中一個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地址在用戶應用程序中不能重疊。
控制器的MODBUS存儲空間安排如下:
MODBUS指令
MODBUS通訊需要將數據放在MODBUS寄存器內進行傳遞。
有專門的MODBUS通訊指令對MODBUS寄存器的數據進行讀寫與寄存器之間的數據傳遞。
MODBUS讀/寫語法格式相同,如下所示:
MODBUSM_REGGET (startreg, num, local_reg)
startreg:對端的寄存器起始編號,從0開始
num:寄存器個數
local_reg:從本地系統MODBUS寄存器中取值,起始編號
示例:
MODBUSM_REGGET(0,10,0) '把本地位寄存器0~9復制到通訊對端的寄存器0~9
MODBUS指令如下,指令詳細用法參見Basic手冊:
MODBUS_BIT -- 位寄存器
MODBUS_IEEE -- 字寄存器-32位浮點型
MODBUS_LONG -- 字寄存器-32位整型
MODBUS_REG -- 字寄存器-16位整型
MODBUS_STRING -- 字寄存器-字節
MODBUSM_DES -- modbus通訊連接
MODBUSM_DES2 -- 控制器間網口通訊
MODBUSM_STATE -- modbus通訊狀態
MODBUSM_REGSET -- 寫對端保持寄存器
MODBUSM_REGGET -- 讀對端保持寄存器
MODBUSM_3XGET -- 讀對端輸入寄存器
MODBUSM_BITSET -- 寫對端線圈
MODBUSM_BITGET -- 讀對端線圈
MODBUSM_1XGET -- 讀對端離散輸入
四、數據類型與數據轉換
1、數據類型
常用寄存器存儲的數據類型和每個數據存儲單元的取值范圍如下表所示:
2、數據轉換
不同類型數據之間的操作,會產生下列問題:
A.數據丟失:浮點型向整型轉換時會丟失小數部分。
示例:
VR(0)=10.314
MODBUS_REG(0)=0
MODBUS_REG(0)=VR(0)
?MODBUS_REG(0) '結果為10
B.強制轉換:整型存儲到浮點型寄存器后會變成浮點型,再使用整型操作數據可能會不正確。
C.單精度數據只有7位有效數值,在計算的過程中如果有長期累加的數值,建議使用4系列控制器。
五、Basic演示例程
以下是Basic演示例程及示波器演示圖。
任務1運行,執行凸輪表指令,得出波形如下圖:
今天,正運動技術運動控制器數據與存儲的應用分享到這里,更多精彩內容,請關注我們的公眾號。示波器圖前面加一句
本文由正運動小助手原創,歡迎大家轉載,共同學習,一起提高中國智能制造水平。文章版權歸正運動技術所有,如有轉載請注明文章來源。
正運動技術是一家專注于運動控制技術研發與應用的國家級高新技術企業,主要從事運動控制器、運動控制卡、IO擴展模塊、運動顯控一體機等系列產品的研發、生產、銷售和服務。
公司匯集了來自華為、中興等公司的優秀人才,在堅持自主創新的同時,積極聯合各大高校致力于運動控制技術研究與應用,是國內工控領域發展最快的企業之一,也是國內完整掌握運動控制核心技術和實時工控軟件平臺技術的企業。
標簽:
上一篇:快速入門丨篇五:如何進行運...
下一篇:快速入門丨篇七:如何進行運...
中國傳動網版權與免責聲明:凡本網注明[來源:中國傳動網]的所有文字、圖片、音視和視頻文件,版權均為中國傳動網(www.siyutn.com)獨家所有。如需轉載請與0755-82949061聯系。任何媒體、網站或個人轉載使用時須注明來源“中國傳動網”,違反者本網將追究其法律責任。
本網轉載并注明其他來源的稿件,均來自互聯網或業內投稿人士,版權屬于原版權人。轉載請保留稿件來源及作者,禁止擅自篡改,違者自負版權法律責任。
產品新聞
更多>2025-06-06
2025-05-19
2025-04-30
2025-04-11
2025-04-08
2025-03-31