時(shí)間:2020-11-26 10:17:27來(lái)源:正運(yùn)動(dòng)技術(shù)
之前正運(yùn)動(dòng)技術(shù)與大家分享了,運(yùn)動(dòng)控制器的固件升級(jí)、ZBasic程序開(kāi)發(fā)、ZPLC程序開(kāi)發(fā)、與觸摸屏通訊和輸入/輸出IO的應(yīng)用、運(yùn)動(dòng)控制器數(shù)據(jù)與存儲(chǔ)的應(yīng)用、運(yùn)動(dòng)控制器ZCAN、EtherCAT總線的使用、示波器的應(yīng)用、多任務(wù)運(yùn)行的特點(diǎn)、運(yùn)動(dòng)控制器中斷的應(yīng)用等。
今天,我們來(lái)講解一下正運(yùn)動(dòng)技術(shù)運(yùn)動(dòng)控制器U盤接口的使用。
視頻教程:《 視頻教程:正運(yùn)動(dòng)技術(shù)運(yùn)動(dòng)控制器U盤接口的使用》
以下是圖文詳解。
1、材料準(zhǔn)備與控制器接線參考
1)材料準(zhǔn)備
2)控制器接線參考
2、U盤的用途
不同型號(hào)的控制器U盤接口的使用方法都是相同的。
將U盤插在控制器上的UDISK端口即可,控制器上電后有U盤插入時(shí),U盤指示燈亮。
U盤主要由兩方面的用途:
1)程序升級(jí)
通過(guò)U盤口,下載打包好的ZAR程序包,方便客戶更新系統(tǒng)程序。
程序升級(jí)之前事先將ZAR程序包下載到U盤里面。使用指令加載U盤文件成功后,ZAR程序自動(dòng)開(kāi)始運(yùn)行。
2)U盤與寄存器數(shù)據(jù)交互
U盤讀寫(xiě)變量和數(shù)組。
FLASH數(shù)據(jù)拷貝:多個(gè)控制器中FLASH存儲(chǔ)的數(shù)據(jù)可以通過(guò)U盤來(lái)相互傳遞。
VR寄存器、TABLE寄存器與U盤里的數(shù)據(jù)互相傳遞。
讀寫(xiě)文件類型為SD(filenum).BIN或SD(filenum).CSV,不同的指令可操作的文件類型有所區(qū)別。
3、U盤讀寫(xiě)指令
U_STATE:U盤狀態(tài)判斷,檢測(cè)到有U盤插入返回TRUE,否則返回FALSE。
1)U盤讀寫(xiě)變量、數(shù)組
U_READ:從U盤中讀取數(shù)據(jù)到變量或數(shù)組里。
U_READ2:從U盤中讀取數(shù)據(jù)到變量或數(shù)組里,可選讀取的起始位置。
U_WRITE:存儲(chǔ)變量或者數(shù)組,數(shù)組的單個(gè)或部分元素到外部存儲(chǔ)器里面。
2)U盤與寄存器數(shù)據(jù)交互
U盤與TABLE和VR數(shù)據(jù)讀寫(xiě)的格式相同。
STICK_READ:從U盤讀取數(shù)據(jù)到table。
STICK_WRITE:拷貝TABLE的數(shù)據(jù)到U盤。
STICK_READVR:從U盤讀取數(shù)據(jù)到VR。
STICK_WRITEVR:拷貝VR的數(shù)據(jù)到U盤。
4、U盤讀寫(xiě)示例
控制器對(duì)U盤進(jìn)行讀寫(xiě)操作之前,首先要確保U盤已經(jīng)插上,使用U_STATE指令判斷U盤狀態(tài)。
操作指令:U_READ,U_WRITE
示例:
注意U盤數(shù)據(jù)的存儲(chǔ)和讀出的次序要一致。
沒(méi)有控制器時(shí),可以使用仿真器,在編程軟件的根目錄下新建udisk文件模擬U盤。將U盤指令操作要用到的文件放入此文件夾即可。
1)U盤zar文件操作。
2)U盤與FLASH數(shù)據(jù)操作。
FLASH塊號(hào)與SD文件的編號(hào)是一一對(duì)應(yīng)的,不需要要指定。
3)刪除U盤文件,支持刪除bin文件和z3p文件。
4)以字節(jié)方式加載U盤上的文件,支持讀取多種類型的文件。
FILE "LOAD_BYTE", "00.txt", 200, 10, 0
‘讀取U盤上名稱為 00.txt的文件,將讀取結(jié)果轉(zhuǎn)化成ASCII碼,存儲(chǔ)在TABLE( 200)開(kāi)始的10個(gè)空間內(nèi)。
最后一個(gè)參數(shù)offset為文件開(kāi)始讀取的字節(jié)偏移,設(shè)為0表示從第一個(gè)字符開(kāi)始讀取;設(shè)為1表示從第二個(gè)字符開(kāi)始讀取,跳過(guò)第一個(gè)字符,詳情參見(jiàn)后方程序演示。
txt文件內(nèi)容:ZMOTION
指令讀取結(jié)果:
TABLE(200):總字節(jié)數(shù)
TABLE(201):讀取到的第一個(gè)字節(jié)
TABLE(202):讀取到的第二個(gè)字節(jié)
TABLE(200+n):讀取到的第N個(gè)字節(jié)
6、U盤使用演示例程
例程使用HMI組態(tài)傳遞MODBUS_BIT位寄存器的值來(lái)控制U盤指令的執(zhí)行。
global sub main_int() '初始化函數(shù)
APP_PASS(123)
VRSTRING(1200,20)="未掃描"
global warnstr(20) '定義提示信息的數(shù)組
dim result 'file指令讀取結(jié)果標(biāo)志
result=0 '返回-1為true,0為false
dim filenum 'zar文件編號(hào)
filenum=0
for i=0 to 100
table(i)=i
next
dim u,uu(8) 'U盤讀寫(xiě)參數(shù)
u=10
for i=0 to 7
uu(i)=i
next
dim a,aa(8) 'FLASH讀寫(xiě)參數(shù)
end sub
global sub main_scan() '周期函數(shù)
if U_STATE=TRUE then '獲取U盤狀態(tài)并顯示連接或未連接
table(100)=1
elseif U_STATE=FALSE then
table(100)=0
endif
if U_STATE=TRUE then '判斷U盤是否插入
'************加載U盤的升級(jí)ZAR程序************
if MODBUS_BIT(0)=1 then '判斷按鍵是否按下
MODBUS_BIT(0)=0 '按鍵恢復(fù)
result=FILE"find_first",".zar",1200 ',zar可以替換為.bin,但是無(wú)法用load_bin下載
if result=-1 then '判斷zar程序讀取是否成功
filenum=1
else
print "沒(méi)有文件"
endif
elseif MODBUS_BIT(10)=1 and result=-1 then
MODBUS_BIT(10)=0
result=FILE"find_prev",1200 '搜索上一個(gè)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 '搜索上一個(gè)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升級(jí)文件
if result =0 then
result=FILE"find_first",".zar",1200
warnstr=" Download Failed"
HMI_SHOWWINDOW(100)
endif
'************U盤與TABLE數(shù)據(jù)交互************
'TABLE讀寫(xiě)指令:STICK_WRITE STICK_READ
'VR讀寫(xiě)指令:STICK_WRITEVR STICK_READVR
elseif MODBUS_BIT(40)=1 then '對(duì)table或VR進(jìn)行操作
MODBUS_BIT(40)=0
STICK_WRITE(10,0,5,1) 'table輸出到U盤,從table(0)開(kāi)始取五個(gè)元素
print "table輸出到U盤"
elseif MODBUS_BIT(41)=1 then
MODBUS_BIT(41)=0
STICK_READ(10,0,1) 'U盤輸出到table(0)開(kāi)始地址
print "U盤輸出到table"
'************U盤數(shù)據(jù)讀寫(xiě)************
elseif MODBUS_BIT(50)=1 then
MODBUS_BIT(50)=0
U_WRITE 1,u,uu '數(shù)據(jù)寫(xiě)入U(xiǎn)盤,對(duì)變量和數(shù)組進(jìn)行操作
print "數(shù)據(jù)寫(xiě)入U(xiǎn)盤"
elseif MODBUS_BIT(51)=1 then
MODBUS_BIT(51)=0
U_READ 1,u,uu 'U盤數(shù)據(jù)讀出
print "U盤數(shù)據(jù)讀出"
'************U盤與FLASH數(shù)據(jù)交互************
elseif MODBUS_BIT(60)=1 then
MODBUS_BIT(60)=0
FLASH_WRITE 3,a aa
file"copy_from","sd3.bin"'本條指令sd num就是指flash塊的編號(hào),此時(shí)將flash塊3的數(shù)據(jù)復(fù)制到u盤
print "flash塊的數(shù)據(jù)復(fù)制到u盤"
elseif MODBUS_BIT(61)=1 then
MODBUS_BIT(61)=0
file"copy_to","sd1.bin" '讀取sd1的數(shù)據(jù)寫(xiě)入flash塊1
print "u盤數(shù)據(jù)寫(xiě)入flash"
flash_read 1,a,aa
print *aa
'************讀取U盤文件內(nèi)容************
elseif MODBUS_BIT(11)=1 then
MODBUS_BIT(11)=0
FILE"LOAD_BYTE","00.txt",200,10,0 '讀取u盤中文本文件數(shù)據(jù)保存到table200開(kāi)始的10個(gè)地址中
print "讀取u盤txt文件"
endif
endif
end sub
HMI組態(tài)界面:
沒(méi)有觸摸屏?xí)r,打開(kāi)ZDevelop編程軟件根目錄找到screen文件夾,打開(kāi)里面的xplcterm應(yīng)用程序,連接到控制器即可進(jìn)行觸摸屏仿真。
正運(yùn)動(dòng)技術(shù)運(yùn)動(dòng)控制器U盤接口的使用就分享到這里,更多精彩內(nèi)容,請(qǐng)關(guān)注我們的公眾號(hào)。
本文由正運(yùn)動(dòng)小助手原創(chuàng),歡迎大家轉(zhuǎn)載,共同學(xué)習(xí),一起提高中國(guó)智能制造水平。文章版權(quán)歸正運(yùn)動(dòng)技術(shù)所有,如有轉(zhuǎn)載請(qǐng)注明文章來(lái)源。
標(biāo)簽:
中國(guó)傳動(dòng)網(wǎng)版權(quán)與免責(zé)聲明:凡本網(wǎng)注明[來(lái)源:中國(guó)傳動(dòng)網(wǎng)]的所有文字、圖片、音視和視頻文件,版權(quán)均為中國(guó)傳動(dòng)網(wǎng)(www.surachana.com)獨(dú)家所有。如需轉(zhuǎn)載請(qǐng)與0755-82949061聯(lián)系。任何媒體、網(wǎng)站或個(gè)人轉(zhuǎn)載使用時(shí)須注明來(lái)源“中國(guó)傳動(dòng)網(wǎng)”,違反者本網(wǎng)將追究其法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明其他來(lái)源的稿件,均來(lái)自互聯(lián)網(wǎng)或業(yè)內(nèi)投稿人士,版權(quán)屬于原版權(quán)人。轉(zhuǎn)載請(qǐng)保留稿件來(lái)源及作者,禁止擅自篡改,違者自負(fù)版權(quán)法律責(zé)任。
相關(guān)資訊
產(chǎn)品新聞
更多>2025-04-30
性能躍升20%!維宏NK300CX Plus數(shù)控系統(tǒng)...
2025-04-11
rpi-image-gen:樹(shù)莓派軟件鏡像構(gòu)建的終...
2025-04-08
【產(chǎn)品解讀】全面提升精密制造檢測(cè)節(jié)拍...
2025-03-31
激光閃耀 智慧引領(lǐng) | WISE MASER 黑武士...
2025-03-20