如何用西門子PLC搭建一個(gè)完整AGV控制系統(tǒng),?
1. 車載控制器
1.1 車載控制器的類型
??車載控制器是控制系統(tǒng)乃至整個(gè) AGV 的核心,,那么應(yīng)該選擇哪種控制器呢,?根據(jù)筆者的經(jīng)驗(yàn),從硬件角度看,,AGV采用的車載控制器基本分為以下三種:
1. PLC:代表產(chǎn)品例如西門子公司的 S7-1200和1500系列,,使用 AGV 廠家有佳順、嘉騰,。PLC 以穩(wěn)定性好,、可靠性高著稱,,但是它的長(zhǎng)項(xiàng)是邏輯控制,一般只能做簡(jiǎn)單的運(yùn)動(dòng)控制,。西門子 PLC 的價(jià)格大概在2000元~12000元左右,。
2. 工控機(jī):代表產(chǎn)品例如倍福公司的 CX5130,使用廠家有昆船,、羅伯特木牛流馬。工控機(jī)其實(shí)就是一臺(tái)電腦,,只不過(guò)經(jīng)過(guò)精心的設(shè)計(jì)使其具有很強(qiáng)的抗干擾能力,,可以用于振動(dòng)、電磁輻射等惡劣的工業(yè)環(huán)境,。工控機(jī)結(jié)構(gòu)緊湊,、體積小巧,其可以運(yùn)行通用的操作系統(tǒng),,比如 Windows,、Linux。以倍福為例,,安裝它的 TwinCAT 控制軟件后,,會(huì)在 Windows 操作系統(tǒng)中插入實(shí)時(shí)內(nèi)核,將電腦變成適合工業(yè)場(chǎng)合的實(shí)時(shí)控制系統(tǒng),。倍福工控機(jī)的售價(jià)大概在5000到30000元左右,。
3. 單片機(jī):代表產(chǎn)品例如 STM32,使用廠家有海通,、機(jī)科,。相比前兩者,單片機(jī)的價(jià)格低廉,,加上外圍器件成本最多也不過(guò)千元左右,。使用單片機(jī)的一個(gè)缺點(diǎn)是,如果要做成成熟的產(chǎn)品,,你需要花費(fèi)很多精力設(shè)計(jì)外部電路以及各種底層算法,。軟件開發(fā)環(huán)境可能會(huì)差一些。
上面的分類并不意味著三者是涇渭分明的,,例如 PLC 的核心芯片可能就是一個(gè)單片機(jī),;而工控機(jī)的編程語(yǔ)言很可能就采用了 PLC 領(lǐng)域使用的梯形圖、ST等語(yǔ)言,;單片機(jī)上面也可以裝載操作系統(tǒng),,從而形成一個(gè)完整的控制器。所以,,雖然它們各有自己適用的領(lǐng)域,,但是相互之間也會(huì)取長(zhǎng)補(bǔ)短,,演變成你中有我我中有你的局面。
??當(dāng)然,,現(xiàn)在市場(chǎng)上有專門的AGV控制器,,例如美國(guó)NDC的CVC600,瑞士BlueBotics的ANT,、浙江科聰智能的 MRC5000,,上海仙知機(jī)器人的SRC。與通用的工業(yè)運(yùn)動(dòng)控制器或PLC相比,,這類控制器集成了成熟的導(dǎo)航和運(yùn)動(dòng)控制算法,,為用戶省去很多工作,而且其穩(wěn)定性和防護(hù)等級(jí)更高,,但其價(jià)格也較高(2萬(wàn)~6萬(wàn)元),。
1.2 西門子 S7-1200 PLC
我選擇西門子的 S7-1215C 型 PLC 作為 AGV 的車載控制器(以后簡(jiǎn)稱為S1200),如下圖所示,。由于西門子的產(chǎn)品型號(hào)非常豐富,,各個(gè)型號(hào)在接口種類、性能等方面有細(xì)微的差別,,在購(gòu)買時(shí)為了準(zhǔn)確描述具體是哪個(gè)型號(hào),,最好使用訂貨號(hào)。西門子每種產(chǎn)品都有一個(gè)訂貨號(hào),,在采購(gòu)時(shí)只需要提供這個(gè)編號(hào)即可,。在西門子的編程軟件中也可根據(jù)訂貨號(hào)查找對(duì)應(yīng)的型號(hào)。當(dāng)然,,使用西門子的產(chǎn)品也有一些缺點(diǎn),,比如它的PLC是通用產(chǎn)品,并不是針對(duì)車輛控制而專門設(shè)計(jì)的,。淘寶上一個(gè)100元的ARM開發(fā)板都具有RS485,、CAN、以太網(wǎng)接口,,而西門子卻要為此付出昂貴的代價(jià),,西門子的產(chǎn)品開放性非常差。所以,,以后的AGV會(huì)逐步淘汰西門子的產(chǎn)品,。
??
1.3 什么是上位機(jī)和下位機(jī)?
有些設(shè)備能夠訪問(wèn)其它的設(shè)備,,比如讀取內(nèi)存中的數(shù)據(jù),、向內(nèi)存寫數(shù)據(jù),這樣的設(shè)備具有較高的權(quán)限和地位,,因此被稱為上位機(jī),。有些設(shè)備只能被其它設(shè)備訪問(wèn),,而沒有訪問(wèn)其它設(shè)備的權(quán)力,這樣的設(shè)備就稱為下位機(jī),。在本文中,,PLC就是下位機(jī),而編程計(jì)算機(jī)就是它的上位機(jī),。
想對(duì)PLC進(jìn)行設(shè)置或編程,,需要使用網(wǎng)線將 S1200 與上位機(jī)連接,只需要將上位機(jī)的 IP 地址設(shè)置為與 PLC 同一網(wǎng)段即可,。S1200 一般出廠默認(rèn)的 IP 地址是 192.168.0.1,,所以可以將你的電腦的 IP 設(shè)置為 192.168.0.2。對(duì)于 AGV 這種移動(dòng)設(shè)備,,通常會(huì)采用無(wú)線通訊,例如接收調(diào)度系統(tǒng)的控制指令,。無(wú)線通信方式有 WIFI,、ZigBee等等。由于 WIFI 在實(shí)際中使用較多,,我介紹一下它的配置方法,。使用 WIFI 連接西門子 PLC 非常方便,只需要用網(wǎng)線將 PLC 的以太網(wǎng)口連接到無(wú)線路由器的 LAN 口,然后用筆記本搜索到對(duì)應(yīng)的 WIFI 后連接即可訪問(wèn) PLC。所用的無(wú)線路由器可以是任意品牌,,甚至家用路由器都可以,。筆者在淘寶買過(guò)一款國(guó)產(chǎn)以太網(wǎng)轉(zhuǎn) WIFI 轉(zhuǎn)換器,但奇怪的是不支持博途軟件(博圖無(wú)法訪問(wèn)到PLC),,所以你購(gòu)買前最好跟商家確認(rèn)是否能用于博途。如果你想追求更穩(wěn)定可靠的通信,可以選擇工業(yè)級(jí)通訊模塊,,例如摩莎(MOXA),它的供電電壓兼容12V~48V,。
2. 驅(qū)動(dòng)器
如果說(shuō)車載控制器是 AGV 的大腦,,那么 AGV 還要有心臟和肌肉才能運(yùn)動(dòng)起來(lái),驅(qū)動(dòng)器給車輪的電機(jī)提供電流,,相當(dāng)于心臟,。
2.1 低壓驅(qū)動(dòng)器品牌
由于 AGV 普遍采用蓄電池供電,其電壓一般在 12V~72V 左右,。因此 AGV 使用的驅(qū)動(dòng)器屬于低壓直流型伺服驅(qū)動(dòng)器,。國(guó)外的低壓驅(qū)動(dòng)器品牌有:AMC、RoboteQ,、ZAPI(薩牌),、Curtis(柯蒂斯),、Elmo(埃莫)等,中國(guó)國(guó)內(nèi)的低壓驅(qū)動(dòng)器品牌有:步科,、森創(chuàng),、英博爾、凱利,。
2.2 PLC與驅(qū)動(dòng)器通信
PLC 要想控制驅(qū)動(dòng)器就要向它發(fā)送指令數(shù)據(jù),。低端驅(qū)動(dòng)器可以用模擬量或者脈沖信號(hào)傳遞數(shù)據(jù),驅(qū)動(dòng)器則采用規(guī)范的通信協(xié)議傳遞數(shù)據(jù),,這樣的通信可以借助 RS-232,、RS-485、CAN,、EtherCAT 等協(xié)議實(shí)現(xiàn),。因?yàn)?S1200 的 CPU 模塊沒有這些通訊接口,所以要想連接驅(qū)動(dòng)器,,需要購(gòu)買額外的通信模塊(CM:Communication Module),。上面提到的幾種協(xié)議西門子都有對(duì)應(yīng)的通信模塊支持,比如西門子的 232 ,、485 和 CANopen 通信模塊如下圖所示(這三種模塊外形一樣),,注意 232 和 CANopen 模塊的插頭是公頭,而485的則是母頭,。
對(duì)于移動(dòng)設(shè)備來(lái)說(shuō),,CAN總線是的通訊方式,像汽車,、挖掘機(jī),、AGV一般都采用CAN總線通訊。CAN 總線的速度快(最高可達(dá)1Mb/s,,比485要快),、穩(wěn)定性高(采用差分信號(hào),抗干擾),,更“智能”(有優(yōu)先級(jí)和仲裁機(jī)制),,因此應(yīng)該優(yōu)先選擇 CAN 總線。但是考慮到西門子本身沒有 CAN通信模塊(如果想使用CAN,,要購(gòu)買第三方公司HMS提供的CANopen模塊),,本文使用的驅(qū)動(dòng)器采用 485 協(xié)議,所以我們選擇485模塊,。隨之而來(lái)的一個(gè)問(wèn)題是:S1200能外擴(kuò)幾個(gè)通信模塊,?答案是:3個(gè)。不管是哪種通信模塊,,數(shù)量最多只能是3個(gè),,種類不限可以混用,。如果你的驅(qū)動(dòng)器是總線型(485和CAN都屬于總線型)的,那么只要一個(gè)485模塊或者 CANopen 模塊就行了,。注意232不是總線型的,,所以用兩個(gè)驅(qū)動(dòng)器就要添加兩個(gè)通信模塊。如果你的 AGV 還有其它走通信協(xié)議的傳感器(例如磁導(dǎo)航傳感器,、RFID傳感器),,那么3個(gè)通信模塊很有可能就顯得捉襟見肘。
??西門子485模塊的接頭采用了標(biāo)準(zhǔn)9 針D型插孔式連接器,。為了將驅(qū)動(dòng)器和PLC連接起來(lái),,我們要購(gòu)買DB9接頭,并用信號(hào)線將兩個(gè)頭連接起來(lái),。這里我們只利用兩個(gè)信號(hào)線即可,。值得注意的是,西門子的485接口定義和常規(guī)的485不一樣,,常規(guī)485的信號(hào)收發(fā)是1,、2頭,而西門子的485則是3,、8頭(參考手冊(cè)的第1769頁(yè))。所以在連線時(shí),,要按照 3-2,、8-1的對(duì)應(yīng)順序焊接,如下圖所示,。
3. 移動(dòng)機(jī)構(gòu)
??AGV要想實(shí)現(xiàn)搬運(yùn),、移載就要有移動(dòng)機(jī)構(gòu),通常采用的移動(dòng)機(jī)構(gòu)有舵輪,、差速輪和麥克納姆輪,。它們各自有什么特點(diǎn)呢?什么場(chǎng)合又該使用哪種輪子呢,?
麥克納姆輪的優(yōu)點(diǎn)是運(yùn)動(dòng)精度高,,但是結(jié)構(gòu)復(fù)雜,磨損嚴(yán)重,,對(duì)地面挑剔,,雖然麥克納姆輪問(wèn)世超過(guò)30年了,但是實(shí)際應(yīng)用并不多,,這也說(shuō)明它不是一個(gè)實(shí)用的產(chǎn)品,。下面我們主要講解舵輪。
舵輪是個(gè)高度集成的移動(dòng)機(jī)構(gòu),,由車輪,、回轉(zhuǎn)支撐,、齒輪箱、驅(qū)動(dòng)電機(jī),、轉(zhuǎn)向電機(jī),、編碼器、限位開關(guān),、制動(dòng)器等部件組成,,它既能提供牽引力,也可以主動(dòng)轉(zhuǎn)向,,因此一個(gè)舵輪有兩個(gè)自由度,。AGV 使用一個(gè)或以上的舵輪就可以實(shí)現(xiàn)全向移動(dòng):原地旋轉(zhuǎn)、斜行,、橫移等等,。舵輪一般用于室內(nèi)環(huán)境,所以輪面的材料多為聚氨酯,。根據(jù)電機(jī)的安裝位置可以將舵輪分為兩種:臥式和立式,,分別如下兩圖所示。臥式舵輪的驅(qū)動(dòng)電機(jī)橫向安裝,,因此整體高度很低,,有些AGV對(duì)高度有要求(例如潛入式的AGV要很矮才能鉆到貨物底下),這時(shí)就適合使用臥式舵輪,;立式舵輪的驅(qū)動(dòng)電機(jī)豎著安裝,,其整體高度偏高,它的優(yōu)點(diǎn)是方便將電機(jī)隔離起來(lái),,在有些場(chǎng)合(例如危險(xiǎn)品工廠),,要求舵輪電機(jī)與外部環(huán)境隔離,這時(shí)就適合使用立式舵輪,。國(guó)外主要的舵輪生產(chǎn)廠家有:意大利的 CFR 和德國(guó)的 schabmuller(夏伯穆勒),,后來(lái)從CFR中又獨(dú)立出來(lái)了一個(gè)廠家——馬路達(dá)。這些舵輪生產(chǎn)廠家一般只賣舵輪,,不提供驅(qū)動(dòng)器,,驅(qū)動(dòng)器則由代理商提供。一臺(tái)AGV上最貴的部件就是舵輪,,以一臺(tái)成本10萬(wàn)元左右的AGV為例,,如果配備兩個(gè)舵輪,就需要4~5萬(wàn)元,,占整車成本將近一半,。不過(guò)好消息是,國(guó)內(nèi)的舵輪廠家開始參與競(jìng)爭(zhēng),這將降低AGV的成本,。
4. 磁導(dǎo)航傳感器和磁條
4.1 磁條
磁條導(dǎo)航是目前 AGV 使用最多的導(dǎo)航方式之一,。只需要預(yù)先在地面鋪設(shè)好磁條,AGV 就會(huì)沿著磁條形成的路徑運(yùn)動(dòng),。磁條一般寬3~5cm,,它像膠帶一樣,一面光滑,、一面帶有粘性,,將粘性的一面粘貼在地面即可完成鋪設(shè)。磁條具有極性,,在購(gòu)買時(shí)注意是N極還是S極,,磁條的極性對(duì)應(yīng)磁導(dǎo)航傳感器的極性,但有些傳感器兩種都兼容,。磁條質(zhì)地較軟,、不抗壓,所以如果被輪子反復(fù)碾壓可能會(huì)壓扁或擠脫落,。多數(shù) AGV 為了避免壓壞磁條會(huì)將驅(qū)動(dòng)輪布置在車體的兩側(cè)(差速形式)或者斜對(duì)稱的位置上,。
4.2 磁導(dǎo)航
磁導(dǎo)航傳感器也叫磁循跡傳感器,它用來(lái)幫助AGV巡線行走,。磁導(dǎo)航傳感器一般安裝在AGV車體或者驅(qū)動(dòng)輪組上,,在AGV運(yùn)動(dòng)時(shí)始終保持在磁條上方一定高度內(nèi)。磁導(dǎo)航傳感器相對(duì)于車體的安裝位置一般在對(duì)稱中軸線上,,通常對(duì)稱安裝,,例如前后各一個(gè)或者左右各一個(gè)。磁導(dǎo)航傳感器的原理很簡(jiǎn)單,,傳感器上有若干個(gè)探頭,每個(gè)探頭都能檢測(cè)磁場(chǎng),,位于磁條上方(一定高度內(nèi))的探頭有信號(hào)輸出,,超出磁條的探頭則沒有信號(hào)。探頭通常俗稱為“點(diǎn)”,,點(diǎn)越多表示傳感器的分辨率越高,,當(dāng)然價(jià)格也越貴。傳感器通常的點(diǎn)數(shù)有:6點(diǎn),、8點(diǎn),、16點(diǎn)幾種。磁導(dǎo)航傳感器并不是什么神秘的東西,,筆者曾經(jīng)拆解過(guò)一款磁導(dǎo)航傳感器,,這里所說(shuō)的探頭無(wú)非有兩種,一種是霍爾元件、還有一種是地磁傳感器,?;魻栐奶攸c(diǎn)大家大學(xué)的時(shí)候應(yīng)該都學(xué)過(guò),它能感應(yīng)磁場(chǎng),,價(jià)格低但是精度通常不高,;地磁傳感器基本都采用美國(guó) PNI 公司的產(chǎn)品。
它要搭配專用的驅(qū)動(dòng)芯片 PNI-12927,,這個(gè)芯片是3.3V供電,,所以傳感器內(nèi)部要設(shè)計(jì)3.3V穩(wěn)壓電路,而且這個(gè)驅(qū)動(dòng)芯片采用 SPI 總線,,要對(duì)其信號(hào)進(jìn)行處理和電壓變換,,這通常由單片機(jī)來(lái)完成。磁導(dǎo)航傳感器的輸出信號(hào)可以是數(shù)字量也可以是總線型數(shù)據(jù),,對(duì)于點(diǎn)數(shù)多的傳感器來(lái)說(shuō)一般用總線型,,因?yàn)槿绻褂脭?shù)字量需要很多根線。假設(shè)一個(gè) AGV 使用4個(gè)傳感器,,每個(gè)傳感器的分辨率是16點(diǎn),,那就要有4×16=64 4\times16=644×16=64個(gè)輸出,相應(yīng)的 PLC 應(yīng)該有 64 個(gè)數(shù)字量輸入口,,其接線將非常繁瑣,,也容易出故障(例如某根線連接不牢固)。
磁導(dǎo)航方式實(shí)現(xiàn)簡(jiǎn)單,,價(jià)格便宜,,但是缺點(diǎn)也不少,其中一個(gè)嚴(yán)重的問(wèn)題是干擾,。筆者在調(diào)試 AGV時(shí)發(fā)現(xiàn),,即使傳感器并不在磁條上方(有時(shí)甚至周圍根本沒有磁條),傳感器依然有輸出,。經(jīng)過(guò)一番思考,,筆者發(fā)現(xiàn)了問(wèn)題所在。AGV 前方有一條鐵軌,,而鐵是容易被磁化的,。不僅是鐵制品,通電的導(dǎo)線也可能會(huì)使傳感器誤報(bào),。所以,,使用磁條導(dǎo)航要排除這些干擾。
磁導(dǎo)航傳感器的輸出可以是IO,,也可以是數(shù)值(代表傳感器偏離磁條中心的距離值),。 磁導(dǎo)航傳感器如何與 PLC 連接,?如上所述,如果傳感器采用總線(例如485)傳遞數(shù)據(jù),,直接將總線連接到相應(yīng)的(485)通信模塊即可,。如果傳感器采用數(shù)字量接口,那么就要連接到 PLC 的數(shù)字量輸入口,。這里有個(gè)很重要的問(wèn)題:你要清楚傳感器輸出的信號(hào)是 PNP 型還是 NPN 型,,它對(duì)應(yīng)了三極管的類型,它們的區(qū)別在于有信號(hào)時(shí) PNP 輸出高電平(例如24V),,而 NPN 輸出低電平(例如0V),。在 S1200 上每組輸入輸出口旁邊都有一個(gè) COM 口,它的作用就是選擇輸入是 PNP 型還是 NPN 型,。如果是 PNP 型,,COM 口就要接 24V ,如果是 NPN 型就要接 0V,。你可以找個(gè)磁條用萬(wàn)用表測(cè)試一下,,如果放到磁條上輸出顯示是24V那說(shuō)明是 PNP 型。以后你會(huì)知道,,很多傳感器都分 PNP 型和 NPN 型,,它們的接法是一樣的。
5. 供電系統(tǒng)
5.1 電池
AGV啟動(dòng)時(shí)需要的電流大,,因此需要使用動(dòng)力電池,,使用最多的動(dòng)力電池有鉛酸電池和鋰電池。鉛酸電池壽命短,、能量密度低,,而鋰電池密度高、但是成本也高,。還有一種電池叫做超級(jí)電容,,它的壽命很長(zhǎng),但是能量密度非常低,,所以用的不多,。
的電池廠家有霍克(HAWKER)、荷貝克(HOPPECKE)等,。下圖是霍克 AGV 專用電池標(biāo)簽,。鉛酸電池的額定放電電流一般是0.5C,,例如80Ah的電池,,額定放電電流是0.5×80=40A 0.5\times80=40A0.5×80=40A。鉛酸電池的最大放電電流一般是3C,,即3×80=240A 3\times80=240A3×80=240A,。電池的電壓會(huì)隨著電量消耗逐漸降低,,開始降低得很慢,當(dāng)電量很少時(shí)會(huì)急劇下降,。根據(jù)這個(gè)關(guān)系,,通過(guò)檢測(cè)電壓就能知道電池還剩余多少電,是否應(yīng)該充電,。
我們?nèi)绾喂烙?jì)一個(gè) AGV 該選用多大容量的電池呢,?
AGV 上最耗電的器件就是電機(jī)了。一般來(lái)說(shuō),,電機(jī)的額定功率 P PP會(huì)寫在電機(jī)銘牌上,。根據(jù)初中物理知識(shí),功率等于電壓和電流的乘積,,即
P=UI P=UI
P=UI
驅(qū)動(dòng)電機(jī)的額定電壓一般容易得到,,所以通過(guò)上式可以計(jì)算出電流。當(dāng)然,,實(shí)際工作的功率一般會(huì)比額定功率小,,所以這里要乘以一個(gè)系數(shù),具體要看 AGV 的負(fù)重,、工作路面等,。求出電流乘以工作時(shí)間就是電池的容量了。注意,,電池的容量和能量是兩個(gè)不同的概念,,前者是電流乘以時(shí)間(單位是“安時(shí)”(Ah))、而后者是電流乘以電壓乘以時(shí)間(單位是“千瓦時(shí)”(KWh)),。
5.2 電壓變換
如果傳感器,、控制器等器件和電池的輸出電壓不同,就需要使用電壓變換模塊,,它還可以起到穩(wěn)壓的作用,。一般傳感器常用的電壓是12V、控制器常用的電壓是24V,,因此需要有相應(yīng)的模塊,。可以選擇廣州金升陽(yáng)的電壓變換模塊,,可選配散熱片和導(dǎo)軌,,便于散熱和固定,如下圖所示的48V轉(zhuǎn)24V的模塊,。選擇模塊時(shí)主要關(guān)心的功率,,即它能提供的最大電流。
6. 開關(guān)
6.1 電源開關(guān)
選擇電源總開關(guān)時(shí)要注意它是“自鎖的”還是“自動(dòng)復(fù)位的”,。自鎖的意思就是按下后即使手指松開,,開關(guān)依然保持閉合使供電暢通,;而自動(dòng)復(fù)位的開關(guān)按下按鈕后如果松開手指,電路就會(huì)被切斷,,如下圖所示,。一般機(jī)箱上的電源總開關(guān)應(yīng)該選擇自鎖型的,否則你要一直按著按鈕才能使電路暢通,,因此不要購(gòu)買下圖右所示的自復(fù)位型開關(guān)(代號(hào):XB2-BA31C,,價(jià)格在22元左右)。假如你買錯(cuò)了也不要緊,,你可以再買一個(gè)自鎖模塊ZB2-BZ21 C,,將這個(gè)模塊添加到XB2-BA31C開關(guān)上就能將它變成一個(gè)自鎖開關(guān)。
6.2 急停開關(guān)
在所有AGV 車體上都能找到的一個(gè)東西就是急停開關(guān),。根據(jù)國(guó)家標(biāo)準(zhǔn)GBT 20721-2006 《自動(dòng)導(dǎo)引車 通用技術(shù)條件》中第4.2.6項(xiàng)的規(guī)定:“AGV 應(yīng)配備緊急停車按鈕,,該按鈕的安裝位置在緊急情況下應(yīng)便于操作。應(yīng)采用紅色按鈕,,急停按鈕按下應(yīng)關(guān)閉 AGV 驅(qū)動(dòng)電源”,。在AGV失去控制的情況下,按下急停開關(guān)能讓它立即停止運(yùn)動(dòng),,從而防止傷害到人,。因此急停開關(guān)構(gòu)成了最后的安全屏障。為了保證使用可靠,,可以購(gòu)買施耐德的XB2-BS542C,。急停開關(guān)的按鈕一般設(shè)計(jì)得很大,方便按下,,因此又被俗稱為蘑菇頭,,它一般都是自鎖的,按下后需要旋轉(zhuǎn)才能松開,。購(gòu)買時(shí)要注意的是它的安裝直徑,,一般選擇 22mm 即可。
7. 電氣元件
AGV上既有強(qiáng)電也有弱電,,例如舵輪的驅(qū)動(dòng)器需要的電流通常很大,,而控制器和一些傳感器只需要很小的電流。我們要合理設(shè)計(jì)電路,,防止它們相互干擾,,更主要的是包含弱電器件。根據(jù)國(guó)家標(biāo)準(zhǔn)GBT 30029-2013 《自動(dòng)導(dǎo)引車(AGV)設(shè)計(jì)通則》中第6.7.7.4項(xiàng)的規(guī)定,,控制器應(yīng)該具有過(guò)壓保護(hù),、欠壓保護(hù)、過(guò)流保護(hù)功能,。
我們要在電路中加入以下器件:
■ \blacksquare■ 接觸器:用小電流控制大電流,。上面的電源開關(guān)只允許通過(guò)較小的電流,但有時(shí)設(shè)備里有些組件需要大電流才能啟動(dòng),,例如舵輪驅(qū)動(dòng)器,。我們不能用一個(gè)開關(guān)既控制小電流也控制大電流,這時(shí)就需要借助接觸器,。接觸器內(nèi)部有個(gè)電磁鐵,,我們用小電流控制電磁鐵的吸合,電磁鐵帶動(dòng)另一組開關(guān)閉合使大電流通過(guò),。在AGV上使用的是直流接觸器,,注意接觸器的線圈會(huì)發(fā)出一定熱量,安裝應(yīng)當(dāng)注意散熱和對(duì)附近器件的影響,。
斷路器:起到過(guò)流,、欠壓保護(hù)的作用。斷路器也相當(dāng)于一個(gè)開關(guān),,在短路等電流過(guò)大時(shí)斷開,,保護(hù)設(shè)備;
繼電器:也相當(dāng)于一個(gè)開關(guān),,它是用小電壓控制觸點(diǎn)開閉的,,但是注意觸點(diǎn)不能流過(guò)太大電流。
AGV 采用電池作為能源,,而電池的電壓通常不是很穩(wěn)定,,在使用時(shí)電壓會(huì)波動(dòng)。雖然西門子的 PLC 對(duì)輸入電壓具有一定的適應(yīng)能力,,但是我們最好用一個(gè)24V到 24V 的穩(wěn)壓模塊將電池的電壓穩(wěn)定后再供給 PLC,。對(duì)于使用24V供電的其它器件,例如磁導(dǎo)航傳感器,,也是這樣,。
8. 激光避障傳感器
??AGV的安全防護(hù)方式有接觸式和非接觸式之分。觸邊屬于接觸式的,,而激光傳感器和超聲波傳感器屬于非接觸式,。當(dāng)然非接觸式的傳感器更加安全,因?yàn)椴恍枰苯咏佑|即可監(jiān)測(cè)障礙物,。
??常用的國(guó)外激光傳感器品牌有SICK和HOKUYO,。以SICK的Tim310為例,它的監(jiān)測(cè)距離可達(dá)3米,,可以設(shè)置不同的監(jiān)測(cè)區(qū)域形狀,。Tim310的輸出是I/O信號(hào),用以判斷是不是監(jiān)測(cè)到了障礙物,。?
9. 觸摸屏
??現(xiàn)在的 AGV 越來(lái)越多地開始配備觸摸屏了,。使用觸摸屏可以方便地設(shè)置AGV的參數(shù),,例如運(yùn)動(dòng)速度、充電電壓等等,,而不需要每次都將程序下載到 PLC,。既然我們選擇了西門子的PLC,當(dāng)然觸摸屏選擇西門子是最配對(duì)的,,但是考慮到西門子的觸摸屏有點(diǎn)貴,,我們選擇國(guó)產(chǎn)的品牌。國(guó)產(chǎn)觸摸屏的質(zhì)量也很可靠,,而且價(jià)格合理,,代表廠家有:威綸通、昆侖通態(tài),。由于西門子的知度,,大多數(shù)觸摸屏都會(huì)支持。但是如果你用其它品牌的PLC,,那最好向觸摸屏廠家詢問(wèn)是否支持你的PLC,,否則是無(wú)法通訊的。
??我選擇昆侖通態(tài)的觸摸屏,,它采用24V直流供電,,并配有網(wǎng)口,用普通網(wǎng)線將觸摸屏和 S1200 連接,,并將觸摸屏的 IP 地址設(shè)置為與 PLC 所在同一網(wǎng)段(例如192.168.0.3)即可實(shí)現(xiàn)和 PLC 的互聯(lián),。設(shè)置 IP 的方法是上電后在進(jìn)入正式界面之前,在屏幕的任意位置點(diǎn)擊一下即可進(jìn)入設(shè)置界面,。
我們?nèi)绾问褂糜|摸屏呢,?我們需要對(duì)觸摸屏進(jìn)行編程,或者說(shuō)“組態(tài)”,。編程需要使用昆侖通態(tài)自己的組態(tài)軟件:MCGS,,載。
在你的電腦上安裝該軟件,,注意在軟件中需要輸入 PLC 的地址才能讀寫數(shù)據(jù),。觸摸屏上只有一個(gè)網(wǎng)口,所以你可以用網(wǎng)線將觸摸屏連接到你的電腦,。我們注意到 S1200 有兩個(gè)網(wǎng)口,,所以一種更方便的連接方式是,將觸摸屏連接到 S1200 上,,然后將 S1200 連接到你的電腦,,這樣同樣能對(duì)觸摸屏進(jìn)行編程。 觸摸屏最基本的功能就是讀寫 PLC 的內(nèi)存(因此它也是PLC的上位機(jī)),。要實(shí)現(xiàn)這個(gè)功能非常簡(jiǎn)單,,只需要在 MCGS 中對(duì) PLC 的變量進(jìn)行關(guān)聯(lián)即可。
10. PLC編程
10.1 編程工具 STEP 7
??購(gòu)買了S1200 并不意味著你能免費(fèi)使用它的開發(fā)軟件,。但是沒關(guān)系,,網(wǎng)上有很多破解軟件。有意思的是,,其中有些資源就是西門子公司的人故意釋放出來(lái)的,他們可能想占有更多的市場(chǎng),。要對(duì)西門子的 PLC 編程必須使用專用的軟件:STEP 7 ,,下圖是 STEP 7 的安裝過(guò)程。
??實(shí)際上,,STEP 7 是過(guò)時(shí)的名稱,,現(xiàn)在西門子想將它和另外幾個(gè)自動(dòng)化軟件都統(tǒng)一成一個(gè)平臺(tái),適用于西門子旗下所有的設(shè)備,,這個(gè)平臺(tái)被稱為:TIA Portal(博途),,本文使用的就是 TIA V13。西門子公司為了保持延續(xù)性,,軟件的名稱有時(shí)是 STEP 7,,有時(shí)又用 TIA,本文我為了與歷史統(tǒng)一還叫 STEP 7 好了,。西門子的軟件跟硬件一樣種類繁多,,光 STEP 7 就有幾個(gè)版本,例如專業(yè)版(professional SP1,,如下圖左所示),,而每個(gè)版本又有不同的更新包。注意 SP1 可能缺少某些功能(下面我會(huì)提到),,因此我使用了更新包,。具體來(lái)說(shuō),我使用的是 STEP 7 V13.0 SP1 Upd8,,如下圖右所示,。
??在軟件安裝時(shí)我們注意到有這樣的說(shuō)明:STEP 7是用于編程的工程組態(tài)工具。要使用 PLC,,編程只是一方面,,還有一個(gè)重要的工作就是“組態(tài)”?!敖M態(tài)”說(shuō)白了就是“配置”,,配置 PLC 的輸入輸出接口、參數(shù)、功能等等,。首先,,在“設(shè)備組態(tài)”頁(yè)面選擇我們的 PLC 型號(hào)就可以了。
10.2 西門子PLC的硬件資源要想用好PLC,,就要熟悉它的一些特點(diǎn),,下面我們就了解一下 S1215C 的特點(diǎn)。1215C的內(nèi)存有多大呢,?
??我們用電腦連接上PLC,,然后在博途軟件左側(cè)欄雙擊“在線和診斷”,然后在打開窗口中點(diǎn)擊“存儲(chǔ)器”,,如下圖所示,。
??可以看到這里有三個(gè)存儲(chǔ)器,分別是:裝載存儲(chǔ)器,、工作存儲(chǔ)器和保持存儲(chǔ)器,。并且可以看到三個(gè)存儲(chǔ)器的大小,分別是:
??1. 裝載存儲(chǔ)器: 4194304 41943044194304 Byte ÷1024÷1024=4 \div 1024 \div 1024= 4÷1024÷1024=4MB
??2. 工作存儲(chǔ)器: 128000 128000128000 Byte ÷1024=125 \div 1024= 125÷1024=125KB
??3. 保持存儲(chǔ)器: 10240 1024010240 Byte ÷1024=10 \div 1024= 10÷1024=10KB
這和系統(tǒng)手冊(cè)中給出的數(shù)值是一樣的,,如下:
??你看完是不是都哭了,,10年前的手機(jī)存儲(chǔ)器都比這要大。這三個(gè)存儲(chǔ)器各有什么作用呢,?
??1. 裝載存儲(chǔ)器:用于存儲(chǔ)用戶項(xiàng)目文件(例如:用戶程序,、組態(tài)信息),相當(dāng)于硬盤,;
??2. 工作存儲(chǔ)器:CPU在執(zhí)行用戶程序時(shí)會(huì)將一些項(xiàng)目?jī)?nèi)容從裝載存儲(chǔ)區(qū)復(fù)制到工作存儲(chǔ)區(qū),,相當(dāng)于電腦的內(nèi)存;
??3. 保持存儲(chǔ)器:掉電后數(shù)據(jù)仍然保持,。如果你希望一些數(shù)據(jù)能在斷電后一直保持就要使用這個(gè)存儲(chǔ)器,。但遺憾的是,小氣的西門子公司只給了我們10KB,。
??PLC 掃描一次程序需要多長(zhǎng)時(shí)間呢,?
??PLC會(huì)自動(dòng)記錄時(shí)間,在同一頁(yè)面,,打開“循環(huán)時(shí)間”,,就能看到PLC完整執(zhí)行一遍程序需要的時(shí)間,如下圖所示,。這個(gè)時(shí)間不是固定的,,取決于你的程序長(zhǎng)短,一般的執(zhí)行時(shí)間在3毫秒以內(nèi),。
10.3 西門子PLC的軟件資源
西門子提供哪些函數(shù)運(yùn)算呢,?工業(yè)控制語(yǔ)言的國(guó)際標(biāo)準(zhǔn)——IEC61131-3 規(guī)定了46個(gè)基本函數(shù),西門子都支持。除此以外,,我們常用的還有定時(shí)器等,。AGV 屬于移動(dòng)機(jī)器人,而機(jī)器人的控制本質(zhì)是數(shù)學(xué)計(jì)算,,所以我重點(diǎn)說(shuō)說(shuō)其中的數(shù)學(xué)函數(shù),,共有18個(gè):
數(shù)字運(yùn)算:ABS、SQRT,、LOG,、LN、EXP,、SIN,、COS、TAN,、ASIN,、ACOS,、ATAN,;
算術(shù)運(yùn)算:ADD、SUB,、MUL,、DIV、MOD,、EXPT,、MOVE;
當(dāng)然還有:>,、< 比較運(yùn)算符,。
翻開另一款控制器品牌——倍福的手冊(cè),你會(huì)發(fā)現(xiàn)它同樣支持這幾個(gè)初級(jí)函數(shù),。
在組態(tài)界面,,雙擊 CPU 模塊能看到這款 PLC 的其它功能介紹,例如周期定時(shí)器,,如下圖所示,。
??如果你使用了觸摸屏,有一點(diǎn)值得注意:在“保護(hù)”頁(yè)面中有一個(gè)選項(xiàng)需要勾選:“允許從遠(yuǎn)程伙伴使用PUT/GET通信訪問(wèn)”,,如下圖所示,。如果不勾選這個(gè)選項(xiàng),你看你無(wú)法用觸摸屏讀寫 PLC 內(nèi)存中的數(shù)據(jù),。讓筆者奇怪的是,,像這樣的細(xì)節(jié)幾乎在所有的手冊(cè)、教程中都找不到,但卻又很重要,。
10.4 西門子PLC的編程方式
??西門子PLC 的編程符合國(guó)際工業(yè)編程語(yǔ)言標(biāo)準(zhǔn) IEC-611313,,因此跟倍福等廠家的差不多。
10.4.1 定義常量
??有些量我們要經(jīng)常使用(例如圓周率 π \piπ),,如果每次都用數(shù)值來(lái)做運(yùn)算一方面輸入很容易出錯(cuò),,另一方面如果想對(duì)其進(jìn)行更改那要改很多處,非常繁瑣,。一個(gè)方便的做法是將其定義為一個(gè)全局的“常數(shù)”,。使用 PLC 和 C 語(yǔ)言等高級(jí)語(yǔ)言相同的一點(diǎn)是,你需要為變量分配內(nèi)存地址,。分配好地址后如何對(duì)其賦值呢,?因?yàn)槌A恐恍枰x一次值即可,所以我們選擇在 Startup 塊中對(duì)其賦值,。Startup 塊在每次 PLC 上電后只執(zhí)行一次,。西門子中有些塊的序號(hào)是系統(tǒng)預(yù)留的,比如 Startup 就是 OB100,。我們注意到,,在博圖軟件中,全局變量用雙引號(hào)表示(例如"PI"),,而局部變量前面帶個(gè)井號(hào)(下面會(huì)碰到),。
10.4.2 定義函數(shù)
??西門子自帶的函數(shù)只能完成簡(jiǎn)單的功能,為了實(shí)現(xiàn)更高級(jí)的控制我們還要自己寫一些函數(shù),。筆者在開發(fā)機(jī)器人控制器的過(guò)程中發(fā)現(xiàn),,網(wǎng)上公開的PLC函數(shù)庫(kù)很少,目前筆者只知道OSCAT庫(kù),。大家都在討論基本的邏輯控制,,卻鮮有人討論更高級(jí)的數(shù)學(xué)計(jì)算,可能 PLC 并不適合高級(jí)運(yùn)動(dòng)控制算法的實(shí)現(xiàn),。
下面我用一個(gè)很簡(jiǎn)單的進(jìn)行角度弧度轉(zhuǎn)換的函數(shù)為例來(lái)說(shuō)明如何在 STEP 7 中自定義函數(shù),。
(1) 首先,我們新建一個(gè)函數(shù)FC(這個(gè)函數(shù)比較簡(jiǎn)單,,不需要背景數(shù)據(jù),,所以不用 FB),實(shí)現(xiàn)的語(yǔ)言選擇 SCL 語(yǔ)言,。函數(shù)名為“DegreeToRad”,。
(2) 然后,我們要明確這個(gè)函數(shù)的輸入,,在上面的變量定義欄中的 Input 項(xiàng)目中輸入 angleInDegree,,類型選擇為 Real,,如下圖所示。在Return 項(xiàng)目中將 DegreeToRad 變量的類型改為 Real,,這里注意不要修改 DegreeToRad 變量的名字,。
(3) 在下面的輸入框輸入變換公式?! ∵@里要用 := 對(duì)變量進(jìn)行賦值,。你會(huì)注意到,變量 PI 是用雙引號(hào)括起來(lái)的,,而其它的變量(例如 angleInDegree)前面則帶一個(gè)井號(hào),。這是用來(lái)區(qū)分局部變量和全局變量的,局部變量用#開頭表示,,而全局變量用引號(hào)表示,。
10.4.3 定時(shí)器
??定時(shí)器是我們會(huì)經(jīng)常使用的一個(gè)功能,想輸出隨時(shí)間變化的量,、想延時(shí)觸發(fā),、想輸出周期信號(hào)都要借助定時(shí)器。西門子的每個(gè)定時(shí)器都對(duì)應(yīng)一個(gè)背景數(shù)據(jù)塊,。筆者早期經(jīng)常犯的一個(gè)錯(cuò)誤是,,為了節(jié)省時(shí)間直接復(fù)制粘貼定時(shí)器塊。其錯(cuò)誤是不管你復(fù)制多少次,,其實(shí)最終還是同一個(gè)定時(shí)器,,而且后面的會(huì)覆蓋前面的值,。這個(gè)錯(cuò)誤導(dǎo)致很多匪夷所思的錯(cuò)誤,,讓筆者頭疼了相當(dāng)長(zhǎng)的時(shí)間。各位一定要注意,,每使用一個(gè)定時(shí)器都要重新拖進(jìn)來(lái)新建,。
10.4.4 磁循跡算法
??為了讓 AGV 始終沿著磁條行走,我們要編寫相應(yīng)的控制程序,,也就是循跡程序,。
循跡程序的邏輯可以非常簡(jiǎn)單,我們的輸入是磁導(dǎo)航傳感器的讀數(shù),,輸出則是舵輪轉(zhuǎn)向的速度(或差速輪的轉(zhuǎn)速差),,磁條如果在 AGV 車體中心線的左側(cè),我們就往左偏轉(zhuǎn),,反之在右側(cè)就往右偏轉(zhuǎn),,而如果恰好在中間則保持不動(dòng)。下面的仿真動(dòng)畫展示了這種控制策略的效果,,其中只使用了一個(gè)傳感器和一個(gè)舵輪,,但已經(jīng)可以沿著曲線行走了,。磁導(dǎo)航傳感器有六個(gè)點(diǎn),安裝在前方,,紅色的方格表示感應(yīng)到了磁條,,白色表示沒有感應(yīng)到。
相關(guān)產(chǎn)品
免責(zé)聲明
- 凡本網(wǎng)注明“來(lái)源:化工儀器網(wǎng)”的所有作品,,均為浙江興旺寶明通網(wǎng)絡(luò)有限公司-化工儀器網(wǎng)合法擁有版權(quán)或有權(quán)使用的作品,,未經(jīng)本網(wǎng)授權(quán)不得轉(zhuǎn)載、摘編或利用其它方式使用上述作品,。已經(jīng)本網(wǎng)授權(quán)使用作品的,,應(yīng)在授權(quán)范圍內(nèi)使用,并注明“來(lái)源:化工儀器網(wǎng)”,。違反上述聲明者,,本網(wǎng)將追究其相關(guān)法律責(zé)任。
- 本網(wǎng)轉(zhuǎn)載并注明自其他來(lái)源(非化工儀器網(wǎng))的作品,,目的在于傳遞更多信息,,并不代表本網(wǎng)贊同其觀點(diǎn)和對(duì)其真實(shí)性負(fù)責(zé),不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任,。其他媒體,、網(wǎng)站或個(gè)人從本網(wǎng)轉(zhuǎn)載時(shí),必須保留本網(wǎng)注明的作品第一來(lái)源,,并自負(fù)版權(quán)等法律責(zé)任,。
- 如涉及作品內(nèi)容、版權(quán)等問(wèn)題,,請(qǐng)?jiān)谧髌钒l(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,,否則視為放棄相關(guān)權(quán)利。