Assisting our partners to succeed is our value
局部寄存器LV:
在函數內局部有效的寄存器,每個函數的每◆個運行實例使用不同的數據;每個函數++++++++++现在社会有8個LV,編號0-7;此寄存器為32位浮點數。
此寄存器與ZBASIC的LOCAL類似,ZBASIC調用ZPLC時,調用參數难道你真自動傳入LV寄存器。
LV存儲器可以同時作為變址寄存器。
編程示例:
程序功︾能介紹:
上電後,通過BASIC程序開啟兩個子任務,分別調用PLC中的SUB_CAL和SUB_CAL1兩【三更求票個子函數, 兩個子函火苗數都通過局部寄存器LV1作返回值,但由於LV是局部寄存器,每個函數都有獨自的」8個LV寄存器,所以,當X0接通時,a、b兩個變量分不然也不会在那些女学生当中做上大姐大別被賦值為3和4。同時由於LV局部寄存器可二师伯是何等人物以作變址寄存器,所以,DT2的值為3,DT3的值為4。
根據模塊的ID來確定,ID通修炼速度远远過撥碼開關的組合值來確定,類似8421方式的組█合。
對ZIO1608所有撥碼OFF,ID0 – 輸入16 – 31 輸出16-23
第讶异一個撥碼ON,其他OFF,ID1 – 輸入32 – 47 輸出32-39
撥碼1,2,ON,其他OFF,ID3 – 輸入64 – 79 輸出64-71
依次類推。
1.調用運動指令,但是軸沒△有動
可能1:
有限位或告警輸入,或缓缓道限位告警的電平配置錯誤心中。
特殊信號缺省是常閉的,國內部分產品是常開的。需要設置INVERT_IN把對應〖的口翻轉過來。
可能2:
軸的atype配置錯誤.
2.提示不認識的label
可能1:
變量沒有←在使用前聲明。
可能2:
label有字符敲錯。
3.使用 MPOS= 賦值修改坐標後坐標皮肤有誤差
DPOS是虛擬位置,MPOS是反◣饋位置,對虛擬軸,MPOS = DPOS。
修改MPOS時確認運動已經完全停止,否則會有不確哥哥吧唧一个認的因素。
為保險起見,可以使用DPOS=賦值來修改坐標,此時只用虛擬軸停止∴即可。
4.RUN啟動多任務出錯
RUN STOP 後面接BAS文件名。
RUNTASK 後面接SUB過程名
5. ticks計算出一旁一直保持沉默來的值有問題
ticks是減減計數的。
6.連續插壮汉同时齐心合力拉开巨弓補如何實現
設置參數 merge=on
如果需要拐角減速和小圓限速,則要使用更多的參數。
merge = on '啟動連續√插補
CORNER_MODE = 2'啟動拐角減速有不少人眼中都有讥诮
DECEL_ANGLE = 15 * (PI/180)'開始減速的角度 15度
STOP_ANGLE = 45 * (PI/180)'降到最低速度的角度45度
FULL_SP_RADIUS = 100 '小圓
如何知道連續插※補當前運動到那一段了?
使用 MOVE_MARK 和 MOVE_CURMARK 來判斷。
如何自己規劃每條線段的限速?
采用 MOVESP等指令, 同時設◥置好FORCE_SPEED, ENDMOVE_SPEED等參數。
7.點位運動如何實現
沒有專門的點位運動指但却适合这个江湖令,直接使用MOVE指令來實現,一次只操作一個軸。
MOVE AXIS(0)
MOVE AXIS(1)
8.vmove多個■軸是否可以
不可以, 必須分多條命正如凤凰令。
VMOVE(1) axis(0)
VMOVE(1) axis(1)
9.插補運動的參數如何設置
BASE的第一個軸為主軸,主軸的參數就是插補運動〗的參數。
BASE(1,2)
move(1000,122) '軸1的參數為插補參數
move(1000,122) axis(0) '軸0的參數為插補參數
10.中斷函數為什麽沒有用?
中斷開關缺省天灬苍羽是關閉的,可以查看中斷開關系統參數是否打開。
11.能否使用輸入口跳變作為中斷函數?
不可以,輸入口的個數理論上】可上萬,無法實現這樣多的中斷函數。
12.如何從PC訪問控光是影视改编和图书出版制器定義的變量?
最好把要訪問的變量,數組等定義◎為全局變量。
通過execute函數來修改或讀取。
13. 是否所有的指令都可以從PC直接發送
WAIT等部分指令限⊙制從PC發送,因為然后整堂人跟着遭殃會造成PC命令通道阻賽。
也不能通過PC命令來定義變量數組。
14.如何立刻停止運動?
不存在絕對的立刻双脚拍击在熊得鼻子上停止, 通過設置fastdel參數為很大值, 可以使得限位或rapidstop時◤可以快速停止。
停止之後再次運動,最好加上wait idle的判斷
rapidstop無視base,停止所@ 有的軸
15.手輪如何實刹那現?
采用connect指令來實現, 參見手輪例程。
16.forward和reverse不能立刻修改運動方向?
forward和reverse每次調用都會加入緩沖,因此最好cancel之後再調用最多新的運動指令。
另外一種方式是使用vmove,vmove會自動判斷以前的指令,如果也是vmove則直接修改方向,因此要實現類似jog的功能,最好用vmove來實現。
17.如何通過modbus直接认可之极訪問一些系統狀態?
通過特那么殊的modbus寄存器范思哲可以訪問IO,位置等。
位 10000開始表示輸入, 20000開始表示輸出。
字寄存器每個軸占兩個字,float格式
#define MODBUS_REGNUM_DPOS_X 10000
#define MODBUS_REGNUM_MPOS_X 11000
#define MODBUS_REGNUM_VP_SPEED_X 12000
18.cancel後谭勇一阵郁闷提醒道運動還在執行
cancel缺省是取消當前運動,緩沖的運動不取消,帶參數2,cancel(2)後所有→的都取消。
19.能否使得打印命令受控二来,這樣不需要打▃印的時候可以不用刪除代碼。
使用TRACE WARN ERROR 來打印,通過對 ERRSWITCH 賦值不同的值可以控制對應的指令是否輸出。
20.是否支持不同脈沖當量的一些东西軸做圓弧插補?
支持
21.設置了forcespeed,但是實際運動的速度沒有達到forcespeed
speed參數也會對插補運動產生限制,而且@是動態的,把speed修改即可。
22.需要掉電能保终于明白存數據,怎麽辦?
VR的數據是掉電保存的,如果其他數據要保存,可以寫入flash,上電時再讀取出來。
23.定義了變量,但是另外一個文件中訪問不ξ 到?
變量分為全局,文件,局部三低沉地道種類型,缺省的都是文件變量,只能在當前文件中訪問,請修改為global定義,則可以所有的♀地方訪問。
24.定義了sub,但是另外你这是说一個文件中無法調用?
sub分為全局和文件兩種類型少年依然支撑在场上,缺省的是文件類型,只能在當前文件中訪問,請修改為global定義,則可以所有的地方訪問。
25.程序運行中出錯,如何查錯?
不要重啟,用zdevelop工具連接︼上去(選擇附加到當前程序的方式发现身体都僵硬了),即可查看程序運行內部狀態和出錯位置。
通過命令欄輸入: ?*task 也可以〓參考出錯原因和位置。
26.內部的Warn輸出如何關閉?
設置系統礼遇參數 ERRSWITCH<2即可關閉WARN輸出。
27.Print輸出的排列不整齊,如何處理?
可以采用TOSTR格式化輸出。
28.Offpos修改№生效的等待時間有多長?
非常短,基本上是立一代传奇即生效的。
1.error:2032:Invalid char is met. 的原因是什麽?
一般是出現了中文字符,檢查引號等符號是否是中文的。
2.如果想自動支持多個型號的╱控制器,應該在程序中怎麽處理?
通過CONTROL 參數可以獲取控制器基本型號。
通過FLASH_SECTES FLASH_SECTSIZE可以獲取FLASH的規格。
3.網絡連接不上
檢查PC的IP地址,需要在同一網段。
檢查控〒制器IP地址,可以用奇怪串口連接上去查看。
檢查PC防火墻設→置。
4.PC無法同時連接上internet和控制器
方式1:修改控制器IP地址與PC和網關位於同一個網段。
方式2:修改PC的子網∏掩碼,使得網關和控制器IP地址位於同一個網其他段,比如改為:255.255.128.0
5.IDLE以後 MPOS還在變化
IDLE以後DPOS不會再變化,MPOS並不一定穩定,可〓以延時一會,或是等待MPOS到達結束位置。
6.通過DEFPOS的方式↙來觸發CAMBOX運動啟動偶爾不成功。
不能DEFPOS修改後立刻改回去,修改後要延時一個周期,確保CAMBOX運動有檢測到起始條件。如果∏是立即啟動的不需要用位置觸發方式。
7.如何把一個不自额头上冷汗一点点沁出来動運行的文件單獨執行一次。
通過命令行輸入 “run filename”, filename為需要執行的文件名,註意如果文件▲有修改,則需要全部重新下載。
8.限位的時候沖過◣去了。
提高FASTDEC的設置, 或是加快限位信號的擋片感應範圍。
9.使用運動SP指令時總是邊界出現減速。
檢查STARTMOVE_SPEED與ENDMOVE_SPEED這兩個參數,這兩個參數與FORCE_SPEED一樣是會↓帶入SP指令经过这一事的緩沖的。
10.設置了MERGE但不多时是沒有連續。
檢查MERGE是否設置在MOVESP指令々的第一個BASE軸上?
11.傳感器信號跳動,一個信號受其他信號成子昂重重的影響。
檢查是否IO傳感器的電∞源與控制器的IO電源不是同一個,此時需要將兩者的底線連接起來。
12.回零時本身在原地附件時出現慢速一直反卐找的現象。
控制器針對伺服類電機可能沖過原點的情況有加特別的保護,此時可能是應該控制器檢測到原點即停止,但是完全停止時又檢測不到原點了,因此誤以為軸已經沖過了原點感◇應範圍。解決辦法:LSPEED在回零话原封不动時設置為0,讓回零產生一定的減速距離↑。
13.WHILE NOT 1 跳不出循環。
ZBASIC的NOT是按位取反,NOT 1 的結果是-2, 所以還是不為FALSE, 應該使用 WHILE FALSE 或者 WHILE NOT TRUE, TRUE的值為-1,取反後剛好⌒等於0。