一、概述
移動(dòng)平臺(tái)控制器用于控制步進(jìn)電機(jī)驅(qū)動(dòng)的移動(dòng)平臺(tái)實(shí)現(xiàn)多種運(yùn)動(dòng),也可用于使用兩相步進(jìn)電機(jī)驅(qū)動(dòng)的其它設(shè)備的控制。自帶搖桿可實(shí)現(xiàn)直接手動(dòng)方式的運(yùn)動(dòng)控制;從控制軟面版實(shí)現(xiàn)運(yùn)動(dòng)控制,或者由計(jì)算機(jī)編程實(shí)現(xiàn)更加靈活多樣的控制方式。每臺(tái)移動(dòng)平臺(tái)控制器多可獨(dú)立或聯(lián)合控制 4 臺(tái)步進(jìn)電機(jī),實(shí)現(xiàn)多達(dá)四維空間的任意方式運(yùn)動(dòng)。移動(dòng)平臺(tái)的位置信息實(shí)時(shí)顯示在 LCD 顯示屏上。
同時(shí)內(nèi)置運(yùn)動(dòng)控制和電機(jī)驅(qū)動(dòng)模塊,控制連接簡(jiǎn)單化;命令控制、 驅(qū)動(dòng)程序等靈活多樣的編程控制方式,可支持多種軟件控制的開發(fā)。
二、連接方法
1.X 通道:用 DB9(孔)-DB9(針)連接電纜與移動(dòng)平臺(tái) X 方向控制端連接;切不可帶電拔插!
2.Y 通道:用 DB9(孔)-DB9(針)連接電纜與移動(dòng)平臺(tái) Y 方向控制端連接;切不可帶電拔插!
3.Z 通道:用 DB9(孔)-DB9(針)連接電纜與移動(dòng)平臺(tái) Z 方向控制端連接;切不可帶電拔插!
4.L 通道:用 DB9(孔)-DB9(針)連接電纜與移動(dòng)平臺(tái) L 方向控制端連接;切不可帶電拔插!
5.RS232:用附件中的 DB9(孔)-DB9(孔)連接電纜與 PC 機(jī) RS232口連接;
6.電源:與附件中的電源適配器連接。
三、直接手動(dòng)方式操作
1.按規(guī)定連接好 X、Y、Z、L 通道電纜;(切不可帶電拔插!)
2.將電源適配器與移動(dòng)平臺(tái)控制器的“電源”插座連接;(只可使用本機(jī)自帶的電源適配器,不可更改!)
3. 確認(rèn)所有連接正確,平臺(tái)移動(dòng)所需空間足夠,各設(shè)備放置平穩(wěn)后, 將電源適配器的交流插頭接入市電;
4.左/右搖動(dòng)四維搖桿手柄,平臺(tái) X 方向電機(jī)正/反轉(zhuǎn)動(dòng);
5.前/后搖動(dòng)四維搖桿手柄,平臺(tái) Y 方向電機(jī)正/反轉(zhuǎn)動(dòng);
6. 正/反旋轉(zhuǎn)四維搖桿手柄,平臺(tái) Z 方向電機(jī)正/反轉(zhuǎn)動(dòng);
7.按住搖桿手柄上的按鈕同時(shí)左/右搖動(dòng)搖桿手柄,平臺(tái) L 方向電機(jī)正/反轉(zhuǎn)動(dòng);
8.搖動(dòng)四維搖桿手柄,體會(huì)平臺(tái)移動(dòng)速度與搖桿關(guān)系;
9.四維搖桿手柄某一方向處于自由位置(零位)6 秒以上,相應(yīng)方向的電機(jī)將自動(dòng)變?yōu)椤翱臻e”狀態(tài);
10.程控(含控制軟面板)時(shí),推動(dòng)搖桿可解除推動(dòng)方向的程控控制, 搖桿回位,該方向即可停止運(yùn)行,可作為急停功能使用。
四、控制軟面板實(shí)現(xiàn)運(yùn)動(dòng)控制
1. 移動(dòng)平臺(tái)控制器與計(jì)算機(jī)通信采用 RS232 接口;
2.用RS232 電纜連接計(jì)算機(jī)和移動(dòng)平臺(tái)控制器;
3.確認(rèn)所有連接正確后,再給移動(dòng)平臺(tái)控制器上電;
4.再計(jì)算機(jī)上運(yùn)行:PDV Controller.exe,得到如下介面:
上半部分為直接控制區(qū),左下部為聯(lián)動(dòng)控制區(qū),右下部分為面板數(shù)據(jù)存取、端口控制和退出部分。
5.直接控制區(qū)。
通道:指明后面控制數(shù)據(jù)所在的行所屬的控制通道;
行進(jìn)速度:讓相應(yīng)控制通道的電機(jī)以該速度運(yùn)行,其值在-4096~
4095 之間。正值正轉(zhuǎn),負(fù)值反轉(zhuǎn),值不得大于后面的“z高速度”,否則速度的值為“z高速度”;
高速度:讓相應(yīng)控制通道的電機(jī)速度值的大值,其值在0~4096 之間,用以指定“行進(jìn)速度”、“行進(jìn)位移”和“點(diǎn)動(dòng)位移” 模式時(shí)的高限速;
行進(jìn)位移:以盡可能高的速度(不超過(guò)“高速度”)行進(jìn)的距離。 其值與后續(xù)“位移比”的乘積應(yīng)在-230~230-1 之間;
點(diǎn)動(dòng)位移:點(diǎn)擊 M-或 M+按鈕時(shí)相應(yīng)通道將反向或正向移動(dòng)對(duì)應(yīng)于設(shè)定值的位移量。其值與后續(xù)“位移比”的乘積應(yīng)在-230~230-1 之間;
位移比:“行進(jìn)位移”和“點(diǎn)動(dòng)位移”模式下實(shí)際位移量與所設(shè)定位移量的比例系數(shù)。通過(guò)設(shè)定該比例系數(shù)可實(shí)現(xiàn)設(shè)定值為不同單位(如 mm、度等)時(shí)與實(shí)際位移量間的轉(zhuǎn)換。
平臺(tái)狀態(tài):顯示平臺(tái)當(dāng)前位置信息和限位信息。數(shù)字為位置信息, “max”或“min”表示平臺(tái)已到達(dá)遠(yuǎn)端或近端限位位置;
連續(xù)更新:勾選時(shí)“平臺(tái)狀態(tài)”信息將與移動(dòng)平臺(tái)控制器顯示狀態(tài)信息同步連續(xù)更新,未勾選時(shí)則不再更新“平臺(tái)狀態(tài)”;
6.“聯(lián)動(dòng)控制”區(qū):聯(lián)動(dòng)控制功能是用被選中為聯(lián)動(dòng)的通道來(lái)實(shí)現(xiàn)空間任意曲線運(yùn)動(dòng)的。這里定義一種曲線表示方式(與四維空間曲線表示類似):一條“曲線”由一個(gè)或多個(gè)直“線段”連接而成。
模值:為“線段”的長(zhǎng)度;其值在-231~231-1 之間;X 分量、Y 分量、Z 分量和 L 分量:每條“線段”在 X、Y、Z 和L 方向上的矢量長(zhǎng)度與線段長(zhǎng)度“模值”的比值的 32768倍(215 倍),其值在-32768~32767 之間;
添加線段:將上述“線段”添加到“曲線”上; 清除曲線:將“曲線”中的內(nèi)容清除;
曲線:由一系列“線段”組成的“曲線”的數(shù)據(jù);曲線上每條線段的數(shù)據(jù)表示為一行,分別為線段的“模值”、“X 分量”、“Y 分量”、“Z 分量”和“L 分量”,用“,”號(hào)分開,行尾也用“,”號(hào)。曲線有多少個(gè)線段就有多少行,也可按照此格式在該文本顯示框中直接編輯曲線數(shù)據(jù)。
X 聯(lián)動(dòng)、Y 聯(lián)動(dòng)、Z 聯(lián)動(dòng)、L 聯(lián)動(dòng):勾選則相應(yīng)通道參加聯(lián)動(dòng),未勾選中的可獨(dú)立運(yùn)動(dòng);
聯(lián)動(dòng)限速:在線段方向上的高速度,其值在 0~4096 之間;
重復(fù)次數(shù):前述曲線運(yùn)動(dòng)的重復(fù)次數(shù),其值在 0~65535 之間;0 表示只運(yùn)行一次,不重復(fù);1 表示運(yùn)行一次,重復(fù)一次,共兩次,依此類推。
如果重復(fù)曲線運(yùn)動(dòng)要求曲線的起點(diǎn)和終點(diǎn)是同一點(diǎn),否則重復(fù)的曲線將形狀相同而不能重合。
開始運(yùn)行:將曲線數(shù)據(jù)下傳到移動(dòng)平臺(tái)控制器,啟動(dòng)電機(jī),開始曲線運(yùn)動(dòng)。
7.在運(yùn)行中實(shí)現(xiàn)等待。在聯(lián)動(dòng)控制過(guò)程中,將需要等待的通道的“×分量”設(shè)為 0,則對(duì)應(yīng)通道將停止運(yùn)行。當(dāng)“模值”的 256 倍不小于“聯(lián)動(dòng)限速”的平方時(shí),等待時(shí)長(zhǎng)為:(256×模值/聯(lián)動(dòng)限速+聯(lián)動(dòng)限速)×0.4096ms;當(dāng)“模值”的 256 倍小于“聯(lián)動(dòng)限速”的平方時(shí),等待時(shí)長(zhǎng)約為:32×模值的平方根×0.4096ms。
8. 面板數(shù)據(jù)存取、端口控制和退出。
保存數(shù)據(jù):保存面板上的各輸入框及狀態(tài)控制數(shù)據(jù)到數(shù)據(jù)文件中;但“曲線”數(shù)據(jù)不保存。
恢復(fù)數(shù)據(jù):從數(shù)據(jù)文件中讀取上述保存的數(shù)據(jù),設(shè)置到面板上的各輸入框及狀態(tài)控制上,不含“曲線”數(shù)據(jù)。
通訊端口:設(shè)定計(jì)算機(jī)與移動(dòng)平臺(tái)控制器的串口號(hào)。退出(Exit):退出控制面板。
五、用命令實(shí)現(xiàn)運(yùn)動(dòng)控制
移動(dòng)平臺(tái)控制器從計(jì)算機(jī)接收命令,實(shí)現(xiàn)運(yùn)動(dòng)控制,前述控制軟面板就是通過(guò)這些命令實(shí)現(xiàn)的。
1.RS232 接口協(xié)議:波特率 57600,無(wú)校驗(yàn),8 數(shù)據(jù)比特,1 停止位;
2.傳輸形式:計(jì)算機(jī)主控傳輸,計(jì)算機(jī)每次向移動(dòng)平臺(tái)控制器傳發(fā)送 1 字節(jié)后,需要等到移動(dòng)平臺(tái)控制器向計(jì)算機(jī)發(fā)送字節(jié) 0Dh,表示移動(dòng)平臺(tái)控制器確認(rèn)收到該字節(jié),計(jì)算機(jī)才能再向移動(dòng)平臺(tái)控制器傳發(fā)送下 1 字節(jié),再等到移動(dòng)平臺(tái)控制器向計(jì)算機(jī)發(fā)送字節(jié) 0Dh,表示移動(dòng)平臺(tái)控制器確認(rèn)收到該字節(jié),…….,依此類推; 3.命令格式:每個(gè)命令由字符串組成,字符采用 ASCII 編碼。字符串總長(zhǎng)度不超過(guò) 16 字節(jié)(含分隔符)。命令組成有兩種方式:一種是: 兩個(gè)字母+ “;”;另一種是:兩個(gè)字母+數(shù)字+ “;”。字母區(qū)分大小寫;“;”號(hào)就是命令的分隔符號(hào)。除此以外不能有其他符號(hào)(含空格)。
例:X 通道以 3000 速度反向行進(jìn):“SX-3000;”
4.命令集。
功能 | 命令形 式 | 功能說(shuō)明 | 備注 | 舉例 |
設(shè)定運(yùn)行速度 | SXn; SYn; SZn; SLn; | X以速度n行進(jìn) Y以速度n行進(jìn) Z以速度n行進(jìn) L以速度n行進(jìn) | n=-4096~4095 速度V(轉(zhuǎn)/秒)=n× 55/220 | SX100; SY-234; SZ1000; SL4095; |
上傳數(shù)據(jù) | UX; UY; UZ; UL; US; UM; UH; | 上傳X位置數(shù)據(jù) 上傳Y位置數(shù)據(jù) 上傳Z位置數(shù)據(jù) 上傳L位置數(shù)據(jù) 上傳限位數(shù)據(jù) 上傳運(yùn)行模式數(shù)據(jù) 上傳零位數(shù)據(jù) | 返回9字節(jié) 返回9字節(jié) 返回9字節(jié) 返回9字節(jié) 返回1字節(jié)* 返回1字節(jié)* 返回1字節(jié)* | UX; UY; UZ; UL; US; UM; UH; |
設(shè)定運(yùn)行位移 | DXn; DYn; DZn; DLn; | X行進(jìn)位移n Y行進(jìn)位移n Z行進(jìn)位移n L行進(jìn)位移n | n=-230~230-1 單位:微步。 1微步=360/12800度=0.028125度。 | DX350; DY-9987; DZ-3456; DL100020; |
設(shè)定高速度 | MXn; MYn; MZn; MLn; | X高限速為n Y高限速為n Z高限速為n L高限速為n | n=0~32767 速度V(轉(zhuǎn)/秒)=n× 55/220 | MX2560; MY200; MZ1002;ML4096; |
任意速度模式 (說(shuō)明見(jiàn)后續(xù)例) | NXn; NYn; NZn; NLn; | 準(zhǔn)備速度控制數(shù)據(jù)下 傳,n為時(shí)段數(shù)。 | n=0~682(僅X) n=0~341(僅用XY) n=0~170(XYZ或XYZL) | NX50; NL120; |
LTn; | 下傳時(shí)長(zhǎng)數(shù)據(jù)n | n=0~230 | LT100000; | |
LAn; | 下傳加速度數(shù)據(jù)n | n=-32767~32767 | LA256; | |
RXn; RYn; RZn; RLn; | X重復(fù)次數(shù) Y重復(fù)次數(shù) Z重復(fù)次數(shù) L重復(fù)次數(shù) (重復(fù)次數(shù)=總運(yùn)行次數(shù)-1) | n=0~65535 | RY132; RZ384; | |
TMn; | 開始運(yùn)行任意速度過(guò) 程。n為通道控制值,處于任意速度模式下的通道的加權(quán)值之和。 定義:如參與任意速度模式: X通道加權(quán)值1; Y通道加權(quán)值2; Z通道加權(quán)值4; L通道加權(quán)值8; 不參與加權(quán)值為0; | n=0~15 | TM1;(X通道運(yùn) 行) TM2;(Y 通道運(yùn)行) TM4;(Z通道運(yùn)行) TM8;(L通道運(yùn)行) TM10;(YL通道運(yùn)行) TM3;(XY 通道運(yùn)行) TM7;(XYZ 通道運(yùn)行) TM15;(XYZL通道運(yùn)行) TM0;(XYZL通道 推出任意速度模式) | |
ARn; | 從SD 卡讀取任意速度 模式數(shù)據(jù)。 | n=0~8192 | AR8; | |
ASn; | 保存任意速度模式數(shù)據(jù) 到SD卡
| n=0~8192 | AS10; | |
停止 | PA; | 立即停止所有運(yùn)行。 |
*詳細(xì)說(shuō)明見(jiàn)后面的例
5.控制舉例:
例1. 移動(dòng)平臺(tái)控制器向計(jì)算機(jī)上傳上傳限位數(shù)據(jù)。
(1)計(jì)算機(jī)向移動(dòng)平臺(tái)控制器下發(fā)字符串:“US;”。
每發(fā)送一個(gè)字符,都要等到移動(dòng)平臺(tái)控制器返回一個(gè)字節(jié)(0Dh),才可接著發(fā)送下一字節(jié)。
(2) 計(jì)算機(jī)得從移動(dòng)平臺(tái)控制器讀取 1 字節(jié), 這個(gè)字節(jié)表示平臺(tái)位置信息:
如果bit0=0, 則 X 方向已到小位置; 如果bit0=1, 則 X 方向未到小位置;如果bit1=0, 則 X 方向已到大位置; 如果bit1=1, 則 X 方向未到大位置;如果bit2=0, 則 Y 方向已到小位置; 如果bit2=1, 則 Y 方向未到小位置;如果bit3=0, 則 Y 方向已到大位置; 如果bit3=1, 則 Y 方向未到大位置;如果bit4=0, 則 Z 方向已到小位置; 如果bit4=1, 則 Z 方向未到小位置;如果bit5=0, 則 Z 方向已到大位置; 如果bit5=1, 則 Z 方向未到大位置;如果bit6=0, 則 L 方向已到小位置;
如果bit6=1, 則 L 方向未到小位置; 如果bit7=0, 則 L 方向已到大位置;如果bit7=1, 則 L 方向未到大位置;
例2. 移動(dòng)平臺(tái)控制器向計(jì)算機(jī)上傳聯(lián)動(dòng)狀態(tài)。
(1)計(jì)算機(jī)向移動(dòng)平臺(tái)控制器下發(fā)字符串:“UJ;”。
每發(fā)送一個(gè)字符,都要等到移動(dòng)平臺(tái)控制器返回一個(gè)字節(jié)(0Dh),才可接著發(fā)送下一字節(jié)。
(2) 計(jì)算機(jī)得從移動(dòng)平臺(tái)控制器讀取 1 字節(jié), 這個(gè)字節(jié)表示平臺(tái)位置信息:
如果bit0=1, 則 X 方向已參與聯(lián)動(dòng); 如果bit0=0, 則 X 方向未參與聯(lián)動(dòng); 如果bit1=1, 則 Y 方向已參與聯(lián)動(dòng); 如果bit1=0, 則 Y 方向未參與聯(lián)動(dòng); 如果bit2=1, 則 Z 方向已參與聯(lián)動(dòng); 如果bit2=0, 則 Z 方向未參與聯(lián)動(dòng); 如果bit3=1, 則 L 方向已參與聯(lián)動(dòng); 如果bit3=0, 則 L 方向未參與聯(lián)動(dòng);
例3. 在三維空間中,畫出重原點(diǎn) O(0,0,0)到P(1000,2000,-3000)的直線段 OP。
(1) 找出線段的“模值”。
可以將線段的長(zhǎng)度作為“模值”,為計(jì)算簡(jiǎn)單也可找一個(gè)不小于值的分量的數(shù)作為“模值”。這里不妨就取值的分量作為模值,即 3000;
(2) 計(jì)算分量:
X 分量=X 位移量/模值×32768=1000/3000×32768=10922;
Y 分量=Y 位移量/模值×32768=2000/3000×32768=21845;
Z 分量=Z 位移量/模值×32768=-3000/3000×32768=-32768;
L 分量=L 位移量/模值×32768=0/3000×32768=0;
(3) 發(fā)送曲線數(shù)據(jù):
JD7; //準(zhǔn)備聯(lián)動(dòng)數(shù)據(jù)下傳,X、Y、Z 聯(lián)動(dòng),L 不聯(lián)動(dòng)。 JW1; //線段數(shù)量:1 段。
JL3000; //模值。
JW10922; // X 分 量 。
JW21845; // Y 分 量 。
JW-32768; // Z 分 量 。
JW0; // 不涉及 L 通道,L 分量也要設(shè)定,其值為 0 即可。
如有更多線段,可相應(yīng)修改線段總數(shù),并依次重復(fù)上述“模值”,
“X 分量”,“Y 分量”,“Z 分量”,“L 分量”設(shè)定過(guò)程,直至設(shè)定完所有線段為止。各參數(shù)設(shè)定必須依次順序。
(4) 開始運(yùn)行聯(lián)動(dòng)過(guò)程:
JT0; //運(yùn)行一次,不重復(fù)。
重復(fù)運(yùn)行時(shí),當(dāng)曲線的起點(diǎn)和終點(diǎn)在同位置時(shí),重復(fù)運(yùn)行時(shí)則會(huì)反復(fù)畫同一曲線;起點(diǎn)和終點(diǎn)不在同位置時(shí),一次運(yùn)行的終點(diǎn)將成為 隨后一次的起點(diǎn),但都畫同樣的曲線。
(5)運(yùn)行模值不為 0,而分量為 0 的“線段”時(shí),即形成“等待”。等待時(shí)長(zhǎng):當(dāng)“模值”的 256 倍不小于“聯(lián)動(dòng)限速”的平方時(shí),等待時(shí)長(zhǎng)為:(256×模值/聯(lián)動(dòng)限速+聯(lián)動(dòng)限速)×0.4096ms;當(dāng)“模值”的 256 倍小于“聯(lián)動(dòng)限速”的平方時(shí),等待時(shí)長(zhǎng)約為:32×模值的平方根×0.4096ms。
六、運(yùn)用庫(kù)函數(shù)實(shí)現(xiàn)運(yùn)動(dòng)控制
系統(tǒng)提供動(dòng)態(tài)鏈接庫(kù)函數(shù),用戶可在自己的應(yīng)用程序中調(diào)用這些函數(shù),滿足特定的應(yīng)用。
頭文件:Vector_dll.h
動(dòng)態(tài)鏈接庫(kù):vector_generator.dll
函數(shù)定義:
1.初始化串口
int stdcall SetComPortn(int port_number);
//port_number=1:com1;
//port_number=2:com2;
該函數(shù)應(yīng)該在所有函數(shù)之前調(diào)用,因?yàn)槠渌瘮?shù)可能使用的串口,使用前應(yīng)該先初始化。
2.關(guān)閉串口
int stdcall CloseCommPort(int port_number);
//port_number=1:com1;
//port_number=2:com2;
該函數(shù)應(yīng)該在所有函數(shù)之后用,因?yàn)槠渌瘮?shù)可能使用的串口, 只有在不再使用串口時(shí)才能關(guān)閉它。
3.設(shè)置行進(jìn)速度
void stdcall SetSpeed(int Channel, int Speed);
//Channel = 0,1,2,3 對(duì)應(yīng) X,Y,Z,L 通道
//Speed =-4096~4095
4.設(shè)置行進(jìn)距離
void stdcall SetDistance(int Channel, int Distance);
//Channel = 0,1,2,3 對(duì)應(yīng) X,Y,Z,L 通道
//Distance = -230~230-1
5.設(shè)置高速度
void stdcall SetMaxSpeed(int channel,int MaxSpeed);
//Channel = 0,1,2,3,4 對(duì)應(yīng) X,Y,Z,L,聯(lián)合
//MaxSpeed =-4096~4095
6.取得位置數(shù)據(jù)
int stdcall GetDisplay(int Channel);
//Channel = 0,1,2,3 對(duì)應(yīng) X,Y,Z,L 通道
7.取得限位或聯(lián)動(dòng)數(shù)據(jù)
int stdcall GetStatus(int Content);
//Content = 0/1 = 限位/聯(lián)動(dòng)
8.聯(lián)動(dòng)數(shù)據(jù)下傳聯(lián)動(dòng)數(shù)據(jù)
void stdcall SetJointData(int Joint[4],int Total_Seg,double Modulus[400],doubleCompnent[400][4]);
//Joint[0,1,2,3] = 1/0 = [X,Y,Z,L]通道是/否聯(lián)動(dòng)
//Total_Seg: 線段總數(shù)(0~330),
//Compnent[400][0,1,2,3] = [X,Y,Z,L] 分量;
我們很高興你能和我們合作。為了節(jié)省你的時(shí)間,在選擇產(chǎn)品時(shí),請(qǐng)查看參數(shù)或與我們的銷售溝通,避免你購(gòu)買的產(chǎn)品,因參數(shù)與你的使用要求不一致,耽誤你的工期進(jìn)度。我們?cè)俅胃兄x你的支持。