6ES7314-6EH04-0AB0安裝調(diào)試
步進電機失步應(yīng)該就是漏掉了脈沖沒有運動到的位置,。而過沖應(yīng)該就是和失步相反,運動到超過了的位置,。
而造成步進電機失步的主要原因山社電機認為有以下四點:
1,、高速運轉(zhuǎn)中電壓不穩(wěn),使輸入電流有時達不到額定電流,,而造成輸出扭矩下降,最終導(dǎo)至失步,。
2,、轉(zhuǎn)速設(shè)置過高,,力矩不夠。
3,、外部阻力過大,。
4、速度上升或下降過快,,而造成失步,。
在一些控制簡單或要求低成本的運動控制系統(tǒng)中,常會用步進電機,。最大的優(yōu)勢是:以開環(huán)的方式來控制位置和速度,。但正因為是開環(huán)控制,負載位置對控制回路沒有反饋,,步進電機就必須正確響應(yīng)每次勵磁變化,。如果勵磁頻率選擇不當,步進電機就不能夠移動到新的位置,。負載實際的位置相對于控制器所期待的位置出現(xiàn)誤差,,即發(fā)生失步現(xiàn)象或過沖想象。
因此,,在步進電機開環(huán)控制系統(tǒng)中,,如何防止失步和過沖是開環(huán)控制系統(tǒng)能否正常運行的關(guān)鍵。
為了克服步進失步和過沖現(xiàn)象,,應(yīng)該在啟動停止時加入適當?shù)募訙p速控制,。我們一般采用:運動控制卡作上位控制單元、具有控制功能的plc作上位控制單元,、單片機作上位控制單元來控制運動加減速可以克服失步過沖現(xiàn)象,。
失步和過沖現(xiàn)象分別出現(xiàn)在步進電機啟動和停止的時候。一般情況下,,系統(tǒng)的極限啟動頻率比較低,,而要求的運行速度往往比較高。如果系統(tǒng)以要求的運行速度直接啟動,,因為該速度已經(jīng)超限,,啟動頻率而不能正常啟動,起則發(fā)生丟步,,重則根本不能啟動,,產(chǎn)生堵轉(zhuǎn)。系統(tǒng)運行起來后,,如果達到終點時立即停止發(fā)送脈沖,,令其立即停止,則由于系統(tǒng)慣性的作用,,步進電機會轉(zhuǎn)過控制器所希望的平衡位置,。
6ES7314-6EH04-0AB0安裝調(diào)試
1.引言
CPU寄存器狀態(tài)字的各位給出了有關(guān)指令狀態(tài)或結(jié)果的信息以及所出現(xiàn)的錯誤,,我們可以將二進制邏輯操作狀態(tài)位信號狀態(tài)直接集成到程序中,以控制程序執(zhí)行的流程,。
2.狀態(tài)字寄存器
先簡單介紹一下CPU中狀態(tài)字,。
●檢查位:狀態(tài)字的0位稱作檢查位,如果/FC位的信號狀態(tài)為“0",,則表示伴隨著下一條邏輯指令,,程序中將開始一個新的邏輯串。FC前面的斜杠表示對FC取反,。
●邏輯運算結(jié)果:狀態(tài)字的第1位為RLO位(RLO=“邏輯運算結(jié)果"),,在二進制邏輯運算中用作暫時存儲位。比如,,一串邏輯指令中的某個指令檢查觸點的信號狀態(tài),,并根據(jù)布爾邏輯運算規(guī)則將檢查的結(jié)果(狀態(tài)位)與RLO位進行邏輯門運算,然后邏輯運算結(jié)果又存在RLO位中,。
●狀態(tài)位:狀態(tài)位(第2位)用以保存被尋址位的值,。狀態(tài)位總是向掃描指令(A,AN,O,…)或?qū)懼噶睿?,S,R,)顯示尋址位的狀態(tài)(對于寫指令,保存的尋址位狀態(tài)是本條寫指令執(zhí)行后的該尋址位的狀態(tài)),。
●OR位:在用指令OR執(zhí)行或邏輯操作之前,,執(zhí)行與邏輯操作的時候,就需要用到OR這一狀態(tài)位,。OR位表示先前執(zhí)行的與邏輯操作產(chǎn)生的值為“1",,于是,邏輯操作或的執(zhí)行結(jié)果就已被確定為“1",。
●OV位:溢出表示算術(shù)或比較指令執(zhí)行時出現(xiàn)了錯誤,。根據(jù)所執(zhí)行的算術(shù)或邏輯指令結(jié)果對該位進行設(shè)置。
●OS位:溢出存儲位是與OV位一起被置位的,,而且在更新算術(shù)指令之后,,它能夠保持這種狀態(tài),也就是說,,它的狀態(tài)不會由于下一個算術(shù)指令的結(jié)果而改變,。這樣,即使是在程序的后面部分,,也還有機會判斷數(shù)字區(qū)域是否溢出或者指令是否含有無效實數(shù),。OS位只有通過如下這些命令進行復(fù)位:JOS(若OS=1,則跳轉(zhuǎn))命令,,塊調(diào)用和塊結(jié)束命令,。
●CC1及CC0位:CC1和CC0(條件代碼)位給出有關(guān)下列結(jié)果的相關(guān)信息:
•算術(shù)指令結(jié)果
•比較指令結(jié)果
•字邏輯指令
•在移位功能中,移出位相關(guān)信息,。
可以用以下指令來檢查條件代碼CC1和CC0,。
CC1CC0檢查完成后,如果:
00A==0結(jié)果=0
10A>0結(jié)果>0
01A<0結(jié)果<0
●BR位:狀態(tài)字的第8位稱為二進制結(jié)果位,。它將字處理程序與位處理聯(lián)系起來,在一段既有位操
作又有字操作的程序中,,用于表示字邏輯是否正確。將BR位加入程序后,,無論字操作結(jié)果如何,,都不會造成二進制邏輯鏈中斷。在梯形圖的方塊指令中,,BR位與ENO位有對應(yīng)關(guān)系,用于表明方塊指令是否被正確執(zhí)行:如果執(zhí)行出現(xiàn)了錯誤,,BR位為0,ENO位也為0,;如果功能被正確執(zhí)行,BR位為1,,
ENO位也為1,。在用戶編寫的FB/FC程序中,,應(yīng)該對BR位進行管理,,功能塊正確執(zhí)行后,使BR位為1,,否則使其為0,。使用SAVE指令將RLO存入BR中,從而達到管理BR位目的,。
狀態(tài)字的9-15位未使用,。
3.具體使用
下面我們結(jié)合STEP7中的指針編程來具體介紹條件碼CC0/CC0的用法。
不同的指令在CPU中執(zhí)行時間是不同的,。浮點數(shù)比定點數(shù)執(zhí)行時間要長,;字邏輯指令比位邏輯指令執(zhí)行時間要長;在某些程序中適當使用狀態(tài)字來進行編程可以減少CPU程序的執(zhí)行時間,。
例1:比如說要比較一個DB中塊的DBBO-DBB99這100個字節(jié)是正數(shù)是負數(shù)還是0,,正數(shù)用1來表示;負數(shù)用-1來表示,;0用0來表示,。并且將對應(yīng)結(jié)果存入MB200開始的100個字節(jié)中。我們通常的做法可能為:

如果利用條件碼來進行編程,,既可以減少程序的大小還會減少一定的指令執(zhí)行時間,我們只需要將
中間的比較程序加以優(yōu)化,,即可以達到目的。

例2:根據(jù)狀態(tài)位C0和CC1的狀態(tài)而跳轉(zhuǎn)的跳轉(zhuǎn)功能指令JZ不改變?nèi)魏螤顟B(tài)位的狀態(tài),,而且邏輯操作結(jié)果RLO值也會“隨著"該跳轉(zhuǎn)功能帶到跳轉(zhuǎn)程序段中,供用戶程序其它邏輯操作之用(不改變/FC狀態(tài)),。
示例兩個整數(shù)相減并需進行連續(xù)判斷:
LMW2
LMW8
-I
JZZERO//如果結(jié)果等于“0",,則跳轉(zhuǎn)至標號ZERO處
//結(jié)果不等于“0"時所執(zhí)行的指令
ZERO://結(jié)果等于“0"時,,所要執(zhí)行的指令
如果用戶不熟悉JZ指令和狀態(tài)位C0和CC1的具體含義,,編程時就需要通過比較指令將比較結(jié)果存入一個二進制位中,再根據(jù)這個二進制位通過JC/JCN指令來控制程序的執(zhí)行了,。
例3:我們實際應(yīng)用中可能要利用某些協(xié)議轉(zhuǎn)換網(wǎng)關(guān)(比如說Hilscher公司的NTTAP系列網(wǎng)關(guān))來和某些串口協(xié)議的儀表進行通信時,,會遇到CRC校驗的問題,,關(guān)于CRC校驗時需要判斷溢出位是否為1的問題來進行程序的進一步計算。我們以EURO2408的MODBUS通信時需要的CRC校驗為例說明CRC校驗的步驟:
1,、裝載16#FFFF到一個16位CRC寄存器,;
2,、將CRC寄存器的高8位字節(jié)與信息中的第一個8位字節(jié)相異或,,結(jié)果返回到CRC寄存器中,;
3、將CRC寄存器數(shù)據(jù)向右移動一位,;
4,、如果溢出的位等于1,則將CRC寄存器與16#A001相異或,,結(jié)果返回到CRC寄存器中;
4,、如果溢出的位等于0,,則重復(fù)第3步;
5,、重復(fù)第3,、4步驟,直到已經(jīng)移位了8次,;
6,、將CRC寄存器的高8位字節(jié)與信息中的下一個8位字節(jié)相異或,結(jié)果返回到CRC寄存器中,;
7、重復(fù)第3步到第6步,,直到信息中所有字節(jié)都與CRC寄存器相異或,,并都移位了8次;
8,、最后的CRC寄存器中的結(jié)果即為CRC校驗碼,,最后被添加到信息(數(shù)據(jù))的末尾(交換!低8位
在前,,高8位在后,;)
在第4步中需要判斷溢出的位是否為1,如何判斷對于整個程序有著重要的影響,。我們可以用A>0指令來判斷這個條件,具體代碼的編寫,,有興趣時大家可以根據(jù)上面的步驟編寫一個自己的CRC程序。
4.結(jié)束語
在一般情況下,,我們不必考慮這些狀態(tài)位,但在某些情況下,,利用這些狀態(tài)位并結(jié)合一定的指令,可以給我們的編程帶來更大的靈活性,同時對于進一步提高自己的編程水平也有一定的作用