0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會員中心
創(chuàng)作中心

完善資料讓更多小伙伴認識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

自動導(dǎo)引車(AGV)控制系統(tǒng)的實現(xiàn)過程

智能制造之家 ? 來源:CSDN-robinvista ? 作者:CSDN-robinvista ? 2024-01-16 11:02 ? 次閱讀

寫在面前

本文介紹自動導(dǎo)引車(AGV)控制系統(tǒng)的實現(xiàn)過程,分為硬件搭建和軟件設(shè)計兩部分。

1. 車載控制器

1.1 車載控制器的類型

車載控制器是控制系統(tǒng)乃至整個 AGV 的核心,那么應(yīng)該選擇哪種控制器呢?根據(jù)筆者的經(jīng)驗,從硬件角度看,AGV采用的車載控制器基本分為以下三種:

1. PLC:代表產(chǎn)品例如西門子公司的 S7-1200和1500系列,使用 AGV 廠家有佳順、嘉騰。PLC 以穩(wěn)定性好、可靠性高著稱,但是它的長項是邏輯控制,一般只能做簡單的運動控制。西門子 PLC 的價格大概在2000元~12000元左右。

2. 工控機:代表產(chǎn)品例如倍福公司的 CX5130,使用廠家有昆船、羅伯特木牛流馬。工控機其實就是一臺電腦,只不過經(jīng)過精心的設(shè)計使其具有很強的抗干擾能力,可以用于振動、電磁輻射等惡劣的工業(yè)環(huán)境。工控機結(jié)構(gòu)緊湊、體積小巧,其可以運行通用的操作系統(tǒng),比如 Windows、Linux。以倍福為例,安裝它的 TwinCAT 控制軟件后,會在 Windows 操作系統(tǒng)中插入實時內(nèi)核,將電腦變成適合工業(yè)場合的實時控制系統(tǒng)。倍福工控機的售價大概在5000到30000元左右。

3. 單片機:代表產(chǎn)品例如 STM32,使用廠家有海通、機科。相比前兩者,單片機的價格低廉,加上外圍器件成本最多也不過千元左右。使用單片機的一個缺點是,如果要做成成熟的產(chǎn)品,你需要花費很多精力設(shè)計外部電路以及各種底層算法。軟件開發(fā)環(huán)境可能會差一些。

上面的分類并不意味著三者是涇渭分明的,例如 PLC 的核心芯片可能就是一個單片機;而工控機的編程語言很可能就采用了 PLC 領(lǐng)域使用的梯形圖、ST等語言;單片機上面也可以裝載操作系統(tǒng),從而形成一個完整的控制器。所以,雖然它們各有自己適用的領(lǐng)域,但是相互之間也會取長補短,演變成你中有我我中有你的局面。

當(dāng)然,現(xiàn)在市場上有專門的AGV控制器,例如美國NDC的CVC600,瑞士BlueBotics的ANT、浙江科聰智能的 MRC5000,上海仙知機器人的SRC。與通用的工業(yè)運動控制器或PLC相比,這類控制器集成了成熟的導(dǎo)航和運動控制算法,為用戶省去很多工作,而且其穩(wěn)定性和防護等級更高,但其價格也較高(2萬~6萬元)。

1.1 西門子 S7-1200 PLC

我選擇西門子的 S7-1215C 型 PLC 作為 AGV 的車載控制器(以后簡稱為S1200),如下圖所示。由于西門子的產(chǎn)品型號非常豐富,各個型號在接口種類、性能等方面有細微的差別,在購買時為了準確描述具體是哪個型號,最好使用訂貨號。西門子每種產(chǎn)品都有一個唯一的訂貨號,在采購時只需要提供這個編號即可。在西門子的編程軟件中也可根據(jù)訂貨號查找對應(yīng)的型號。當(dāng)然,使用西門子的產(chǎn)品也有一些缺點,比如它的PLC是通用產(chǎn)品,并不是針對車輛控制而專門設(shè)計的。淘寶上一個100元的ARM開發(fā)板都具有RS485、CAN以太網(wǎng)接口,而西門子卻要為此付出昂貴的代價,西門子的產(chǎn)品開放性非常差。所以,以后的AGV會逐步淘汰西門子的產(chǎn)品。

wKgZomWl8geARXPPAACuVWiH5O4478.jpg

什么是上位機和下位機?

有些設(shè)備能夠訪問其它的設(shè)備,比如讀取內(nèi)存中的數(shù)據(jù)、向內(nèi)存寫數(shù)據(jù),這樣的設(shè)備具有較高的權(quán)限和地位,因此被稱為上位機。有些設(shè)備只能被其它設(shè)備訪問,而沒有訪問其它設(shè)備的權(quán)力,這樣的設(shè)備就稱為下位機。在本文中,PLC就是下位機,而編程計算機就是它的上位機。

想對PLC進行設(shè)置或編程,需要使用網(wǎng)線將 S1200 與上位機連接,只需要將上位機的 IP 地址設(shè)置為與 PLC 同一網(wǎng)段即可。S1200 一般出廠默認的 IP 地址是 192.168.0.1,所以可以將你的電腦的 IP 設(shè)置為 192.168.0.2。對于 AGV 這種移動設(shè)備,通常會采用無線通訊,例如接收調(diào)度系統(tǒng)的控制指令。無線通信方式有 WIFI、ZigBee等等。由于 WIFI 在實際中使用較多,我介紹一下它的配置方法。使用 WIFI 連接西門子 PLC 非常方便,只需要用網(wǎng)線將 PLC 的以太網(wǎng)口連接到無線路由器的 LAN 口,然后用筆記本搜索到對應(yīng)的 WIFI 后連接即可訪問 PLC。所用的無線路由器可以是任意品牌,甚至家用路由器都可以。筆者在淘寶買過一款國產(chǎn)以太網(wǎng)轉(zhuǎn) WIFI 轉(zhuǎn)換器,但奇怪的是不支持博途軟件(博圖無法訪問到PLC),所以你購買前最好跟商家確認是否能用于博途。如果你想追求更穩(wěn)定可靠的通信,可以選擇工業(yè)級通訊模塊,例如摩莎(MOXA),它的供電電壓兼容12V~48V。

wKgZomWl8giAWXYbAADI80lguU8678.jpg

2. 驅(qū)動器

如果說車載控制器是 AGV 的大腦,那么 AGV 還要有心臟和肌肉才能運動起來,驅(qū)動器給車輪的電機提供電流,相當(dāng)于心臟。

2.1 低壓驅(qū)動器品牌

由于 AGV 普遍采用蓄電池供電,其電壓一般在 12V~72V 左右。因此 AGV 使用的驅(qū)動器屬于低壓直流型伺服驅(qū)動器。國外的低壓驅(qū)動器品牌有:AMC、RoboteQ、ZAPI(薩牌)、Curtis(柯蒂斯)、Elmo(埃莫)等,中國國內(nèi)的低壓驅(qū)動器品牌有:步科、森創(chuàng)、英博爾、凱利。

2.2 PLC與驅(qū)動器通信

PLC 要想控制驅(qū)動器就要向它發(fā)送指令數(shù)據(jù)。低端驅(qū)動器可以用模擬量或者脈沖信號傳遞數(shù)據(jù),高端驅(qū)動器則采用規(guī)范的通信協(xié)議傳遞數(shù)據(jù),這樣的通信可以借助 RS-232、RS-485、CAN、EtherCAT 等協(xié)議實現(xiàn)。因為 S1200 的 CPU 模塊沒有這些通訊接口,所以要想連接驅(qū)動器,需要購買額外的通信模塊(CM:Communication Module)。上面提到的幾種協(xié)議西門子都有對應(yīng)的通信模塊支持,比如西門子的 232 、485 和 CANopen 通信模塊如下圖所示(這三種模塊外形完全一樣),注意 232 和 CANopen 模塊的插頭是公頭,而485的則是母頭。

對于移動設(shè)備來說,CAN總線是最常用的通訊方式,像汽車、挖掘機、AGV一般都采用CAN總線通訊。CAN 總線的速度快(最高可達1Mb/s,比485要快)、穩(wěn)定性高(采用差分信號,抗干擾),更“智能”(有優(yōu)先級和仲裁機制),因此應(yīng)該優(yōu)先選擇 CAN 總線。但是考慮到西門子本身沒有 CAN通信模塊(如果想使用CAN,要購買第三方公司HMS提供的CANopen模塊),本文使用的驅(qū)動器采用 485 協(xié)議,所以我們選擇485模塊。隨之而來的一個問題是:S1200能外擴幾個通信模塊?答案是:3個。不管是哪種通信模塊,數(shù)量最多只能是3個,種類不限可以混用。如果你的驅(qū)動器是總線型(485和CAN都屬于總線型)的,那么只要一個485模塊或者 CANopen 模塊就行了。注意232不是總線型的,所以用兩個驅(qū)動器就要添加兩個通信模塊。如果你的 AGV 還有其它走通信協(xié)議的傳感器(例如磁導(dǎo)航傳感器、RFID傳感器),那么3個通信模塊很有可能就顯得捉襟見肘。

wKgZomWl8giAHNB-AAAW_Ds9-fo084.png

西門子485模塊的接頭采用了標準9 針D型插孔式連接器。為了將驅(qū)動器和PLC連接起來,我們要購買DB9接頭,并用信號線將兩個頭連接起來。這里我們只利用兩個信號線即可。值得注意的是,西門子的485接口定義和常規(guī)的485不一樣,常規(guī)485的信號收發(fā)是1、2頭,而西門子的485則是3、8頭(參考手冊的第1769頁)。所以在連線時,要按照 3-2、8-1的對應(yīng)順序焊接,如下圖所示。

wKgZomWl8giAHcSVAAB0cH92wFY692.jpg

3. 移動機構(gòu)

AGV要想實現(xiàn)搬運、移載就要有移動機構(gòu),通常采用的移動機構(gòu)有舵輪、差速輪和麥克納姆輪。它們各自有什么特點呢?什么場合又該使用哪種輪子呢?

麥克納姆輪的優(yōu)點是運動精度高,但是結(jié)構(gòu)復(fù)雜,磨損嚴重,對地面挑剔,雖然麥克納姆輪問世超過30年了,但是實際應(yīng)用并不多,這也說明它不是一個實用的產(chǎn)品。下面我們主要講解舵輪。

舵輪是個高度集成的移動機構(gòu),由車輪、回轉(zhuǎn)支撐、齒輪箱、驅(qū)動電機、轉(zhuǎn)向電機、編碼器、限位開關(guān)、制動器等部件組成,它既能提供牽引力,也可以主動轉(zhuǎn)向,因此一個舵輪有兩個自由度。AGV 使用一個或以上的舵輪就可以實現(xiàn)全向移動:原地旋轉(zhuǎn)、斜行、橫移等等。舵輪一般用于室內(nèi)環(huán)境,所以輪面的材料多為聚氨酯。根據(jù)電機的安裝位置可以將舵輪分為兩種:臥式和立式,分別如下兩圖所示。臥式舵輪的驅(qū)動電機橫向安裝,因此整體高度很低,有些AGV對高度有要求(例如潛入式的AGV要很矮才能鉆到貨物底下),這時就適合使用臥式舵輪;立式舵輪的驅(qū)動電機豎著安裝,其整體高度偏高,它的優(yōu)點是方便將電機隔離起來,在有些場合(例如危險品工廠),要求舵輪電機與外部環(huán)境隔離,這時就適合使用立式舵輪。國外主要的舵輪生產(chǎn)廠家有:意大利的 CFR 和德國的 schabmuller(夏伯穆勒),后來從CFR中又獨立出來了一個廠家——馬路達。這些舵輪生產(chǎn)廠家一般只賣舵輪,不提供驅(qū)動器,驅(qū)動器則由代理商提供。一臺AGV上最貴的部件就是舵輪,以一臺成本10萬元左右的AGV為例,如果配備兩個舵輪,就需要4~5萬元,占整車成本將近一半。不過好消息是,國內(nèi)的舵輪廠家開始參與競爭,這將降低AGV的成本。

4. 磁導(dǎo)航傳感器和磁條

4.1 磁條

磁條導(dǎo)航是目前 AGV 使用最多的導(dǎo)航方式之一。只需要預(yù)先在地面鋪設(shè)好磁條,AGV 就會沿著磁條形成的路徑運動。磁條一般寬3~5cm,它像膠帶一樣,一面光滑、一面帶有粘性,將粘性的一面粘貼在地面即可完成鋪設(shè)。磁條具有極性,在購買時注意是N極還是S極,磁條的極性對應(yīng)磁導(dǎo)航傳感器的極性,但有些傳感器兩種都兼容。磁條質(zhì)地較軟、不抗壓,所以如果被輪子反復(fù)碾壓可能會壓扁或擠脫落。多數(shù) AGV 為了避免壓壞磁條會將驅(qū)動輪布置在車體的兩側(cè)(差速形式)或者斜對稱的位置上。

4.2 磁導(dǎo)航

磁導(dǎo)航傳感器也叫磁循跡傳感器,它用來幫助AGV巡線行走。磁導(dǎo)航傳感器一般安裝在AGV車體或者驅(qū)動輪組上,在AGV運動時始終保持在磁條上方一定高度內(nèi)。磁導(dǎo)航傳感器相對于車體的安裝位置一般在對稱中軸線上,通常對稱安裝,例如前后各一個或者左右各一個。磁導(dǎo)航傳感器的原理很簡單,傳感器上有若干個探頭,每個探頭都能檢測磁場,位于磁條上方(一定高度內(nèi))的探頭有信號輸出,超出磁條的探頭則沒有信號。探頭通常俗稱為“點”,點越多表示傳感器的分辨率越高,當(dāng)然價格也越貴。傳感器通常的點數(shù)有:6點、8點、16點幾種。磁導(dǎo)航傳感器并不是什么神秘的東西,筆者曾經(jīng)拆解過一款磁導(dǎo)航傳感器,這里所說的探頭無非有兩種,一種是霍爾元件、還有一種是地磁傳感器?;魻栐奶攸c大家大學(xué)的時候應(yīng)該都學(xué)過,它能感應(yīng)磁場,價格低但是精度通常不高;地磁傳感器基本都采用美國 PNI 公司的產(chǎn)品。

它要搭配專用的驅(qū)動芯片 PNI-12927,這個芯片是3.3V供電,所以傳感器內(nèi)部要設(shè)計3.3V穩(wěn)壓電路,而且這個驅(qū)動芯片采用 SPI 總線,要對其信號進行處理和電壓變換,這通常由單片機來完成。磁導(dǎo)航傳感器的輸出信號可以是數(shù)字量也可以是總線型數(shù)據(jù),對于點數(shù)多的傳感器來說一般用總線型,因為如果使用數(shù)字量需要很多根線。假設(shè)一個 AGV 使用4個傳感器,每個傳感器的分辨率是16點,那就要有4×16=64 4 imes16=644×16=64個輸出,相應(yīng)的 PLC 應(yīng)該有 64 個數(shù)字量輸入口,其接線將非常繁瑣,也容易出故障(例如某根線連接不牢固)。

磁導(dǎo)航方式實現(xiàn)簡單,價格便宜,但是缺點也不少,其中一個嚴重的問題是干擾。筆者在調(diào)試 AGV時發(fā)現(xiàn),即使傳感器并不在磁條上方(有時甚至周圍根本沒有磁條),傳感器依然有輸出。經(jīng)過一番思考,筆者發(fā)現(xiàn)了問題所在。AGV 前方有一條鐵軌,而鐵是容易被磁化的。不僅是鐵制品,通電的導(dǎo)線也可能會使傳感器誤報。所以,使用磁條導(dǎo)航要排除這些干擾。

磁導(dǎo)航傳感器的輸出可以是IO,也可以是數(shù)值(代表傳感器偏離磁條中心的距離值)。磁導(dǎo)航傳感器如何與 PLC 連接?如上所述,如果傳感器采用總線(例如485)傳遞數(shù)據(jù),直接將總線連接到相應(yīng)的(485)通信模塊即可。如果傳感器采用數(shù)字量接口,那么就要連接到 PLC 的數(shù)字量輸入口。這里有個很重要的問題:你要清楚傳感器輸出的信號是 PNP 型還是 NPN 型,它對應(yīng)了三極管的類型,它們的區(qū)別在于有信號時 PNP 輸出高電平(例如24V),而 NPN 輸出低電平(例如0V)。在 S1200 上每組輸入輸出口旁邊都有一個 COM 口,它的作用就是選擇輸入是 PNP 型還是 NPN 型。如果是 PNP 型,COM 口就要接 24V ,如果是 NPN 型就要接 0V。你可以找個磁條用萬用表測試一下,如果放到磁條上輸出顯示是24V那說明是 PNP 型。以后你會知道,很多傳感器都分 PNP 型和 NPN 型,它們的接法是一樣的。

5. 供電系統(tǒng)

5.1 電池

AGV啟動時需要的電流大,因此需要使用動力電池,使用最多的動力電池有鉛酸電池和鋰電池。鉛酸電池壽命短、能量密度低,而鋰電池密度高、但是成本也高。還有一種電池叫做超級電容,它的壽命很長,但是能量密度非常低,所以用的不多。

知名的電池廠家有霍克(HAWKER)、荷貝克(HOPPECKE)等。下圖是霍克 AGV 專用電池標簽。鉛酸電池的額定放電電流一般是0.5C,例如80Ah的電池,額定放電電流是0.5×80=40A 0.5 imes80=40A0.5×80=40A。鉛酸電池的最大放電電流一般是3C,即3×80=240A 3 imes80=240A3×80=240A。電池的電壓會隨著電量消耗逐漸降低,開始降低得很慢,當(dāng)電量很少時會急劇下降。根據(jù)這個關(guān)系,通過檢測電壓就能知道電池還剩余多少電,是否應(yīng)該充電。

我們?nèi)绾喂烙嬕粋€ AGV 該選用多大容量的電池呢?

AGV 上最耗電的器件就是電機了。一般來說,電機的額定功率 P PP會寫在電機銘牌上。根據(jù)初中物理知識,功率等于電壓和電流的乘積,即

P=UI P=UI

P=UI

驅(qū)動電機的額定電壓一般容易得到,所以通過上式可以計算出電流。當(dāng)然,實際工作的功率一般會比額定功率小,所以這里要乘以一個系數(shù),具體要看 AGV 的負重、工作路面等。求出電流乘以工作時間就是電池的容量了。注意,電池的容量和能量是兩個不同的概念,前者是電流乘以時間(單位是“安時”(Ah))、而后者是電流乘以電壓乘以時間(單位是“千瓦時”(KWh))。

5.2 電壓變換

如果傳感器、控制器等器件和電池的輸出電壓不同,就需要使用電壓變換模塊,它還可以起到穩(wěn)壓的作用。一般傳感器常用的電壓是12V、控制器常用的電壓是24V,因此需要有相應(yīng)的模塊??梢赃x擇廣州金升陽的電壓變換模塊,可選配散熱片和導(dǎo)軌,便于散熱和固定,如下圖所示的48V轉(zhuǎn)24V的模塊。選擇模塊時主要關(guān)心的功率,即它能提供的最大電流。

6. 開關(guān)

6.1 電源開關(guān)

選擇電源總開關(guān)時要注意它是“自鎖的”還是“自動復(fù)位的”。自鎖的意思就是按下后即使手指松開,開關(guān)依然保持閉合使供電暢通;而自動復(fù)位的開關(guān)按下按鈕后如果松開手指,電路就會被切斷,如下圖所示。一般機箱上的電源總開關(guān)應(yīng)該選擇自鎖型的,否則你要一直按著按鈕才能使電路暢通,因此不要購買下圖右所示的自復(fù)位型開關(guān)(代號:XB2-BA31C,價格在22元左右)。假如你買錯了也不要緊,你可以再買一個自鎖模塊ZB2-BZ21 C,將這個模塊添加到XB2-BA31C開關(guān)上就能將它變成一個自鎖開關(guān)。

6.2 急停開關(guān)

在所有AGV 車體上都能找到的一個東西就是急停開關(guān)。根據(jù)國家標準GBT 20721-2006 《自動導(dǎo)引車 通用技術(shù)條件》中第4.2.6項的規(guī)定:“AGV 應(yīng)配備緊急停車按鈕,該按鈕的安裝位置在緊急情況下應(yīng)便于操作。應(yīng)采用紅色按鈕,急停按鈕按下應(yīng)關(guān)閉 AGV 驅(qū)動電源”。在AGV失去控制的情況下,按下急停開關(guān)能讓它立即停止運動,從而防止傷害到人。因此急停開關(guān)構(gòu)成了最后的安全屏障。為了保證使用可靠,可以購買施耐德的XB2-BS542C。急停開關(guān)的按鈕一般設(shè)計得很大,方便按下,因此又被俗稱為蘑菇頭,它一般都是自鎖的,按下后需要旋轉(zhuǎn)才能松開。購買時唯一要注意的是它的安裝直徑,一般選擇 22mm 即可。

7. 電氣元件

AGV上既有強電也有弱電,例如舵輪的驅(qū)動器需要的電流通常很大,而控制器和一些傳感器只需要很小的電流。我們要合理設(shè)計電路,防止它們相互干擾,更主要的是包含弱電器件。根據(jù)國家標準GBT 30029-2013 《自動導(dǎo)引車(AGV)設(shè)計通則》中第6.7.7.4項的規(guī)定,控制器應(yīng)該具有過壓保護、欠壓保護、過流保護功能。

我們要在電路中加入以下器件:

■ lacksquare■接觸器:用小電流控制大電流。上面的電源開關(guān)只允許通過較小的電流,但有時設(shè)備里有些組件需要大電流才能啟動,例如舵輪驅(qū)動器。我們不能用一個開關(guān)既控制小電流也控制大電流,這時就需要借助接觸器。接觸器內(nèi)部有個電磁鐵,我們用小電流控制電磁鐵的吸合,電磁鐵帶動另一組開關(guān)閉合使大電流通過。在AGV上使用的是直流接觸器,注意接觸器的線圈會發(fā)出一定熱量,安裝應(yīng)當(dāng)注意散熱和對附近器件的影響。

斷路器:起到過流、欠壓保護的作用。斷路器也相當(dāng)于一個開關(guān),在短路等電流過大時斷開,保護設(shè)備;

繼電器:也相當(dāng)于一個開關(guān),它是用小電壓控制觸點開閉的,但是注意觸點不能流過太大電流。

AGV 采用電池作為能源,而電池的電壓通常不是很穩(wěn)定,在使用時電壓會波動。雖然西門子的 PLC 對輸入電壓具有一定的適應(yīng)能力,但是我們最好用一個24V到 24V 的穩(wěn)壓模塊將電池的電壓穩(wěn)定后再供給 PLC。對于使用24V供電的其它器件,例如磁導(dǎo)航傳感器,也是這樣。

8. 激光避障傳感器

AGV的安全防護方式有接觸式和非接觸式之分。觸邊屬于接觸式的,而激光傳感器和超聲波傳感器屬于非接觸式。當(dāng)然非接觸式的傳感器更加安全,因為不需要直接接觸即可監(jiān)測障礙物。

常用的國外激光傳感器品牌有SICK和HOKUYO。以SICK的Tim310為例,它的監(jiān)測距離可達3米,可以設(shè)置不同的監(jiān)測區(qū)域形狀。Tim310的輸出是I/O信號,用以判斷是不是監(jiān)測到了障礙物。?

9. 觸摸屏

現(xiàn)在的 AGV 越來越多地開始配備觸摸屏了。使用觸摸屏可以方便地設(shè)置AGV的參數(shù),例如運動速度、充電電壓等等,而不需要每次都將程序下載到 PLC。既然我們選擇了西門子的PLC,當(dāng)然觸摸屏選擇西門子是最配對的,但是考慮到西門子的觸摸屏有點貴,我們選擇國產(chǎn)的品牌。國產(chǎn)觸摸屏的質(zhì)量也很可靠,而且價格合理,代表廠家有:威綸通、昆侖通態(tài)。由于西門子的知名度,大多數(shù)觸摸屏都會支持。但是如果你用其它品牌的PLC,那最好向觸摸屏廠家詢問是否支持你的PLC,否則是無法通訊的。

我選擇昆侖通態(tài)的觸摸屏,它采用24V直流供電,并配有網(wǎng)口,用普通網(wǎng)線將觸摸屏和 S1200 連接,并將觸摸屏的 IP 地址設(shè)置為與 PLC 所在同一網(wǎng)段(例如192.168.0.3)即可實現(xiàn)和 PLC 的互聯(lián)。設(shè)置 IP 的方法是上電后在進入正式界面之前,在屏幕的任意位置點擊一下即可進入設(shè)置界面。

我們?nèi)绾问褂糜|摸屏呢?我們需要對觸摸屏進行編程,或者說“組態(tài)”。編程需要使用昆侖通態(tài)自己的組態(tài)軟件:MCGS,可以在它的官方網(wǎng)站免費下載

wKgZomWl8gmAOVkbAAGNJgDuSdk417.jpg

在你的電腦上安裝該軟件,注意在軟件中需要輸入 PLC 的地址才能讀寫數(shù)據(jù)。觸摸屏上只有一個網(wǎng)口,所以你可以用網(wǎng)線將觸摸屏連接到你的電腦。我們注意到 S1200 有兩個網(wǎng)口,所以一種更方便的連接方式是,將觸摸屏連接到 S1200 上,然后將 S1200 連接到你的電腦,這樣同樣能對觸摸屏進行編程。觸摸屏最基本的功能就是讀寫 PLC 的內(nèi)存(因此它也是PLC的上位機)。要實現(xiàn)這個功能非常簡單,只需要在 MCGS 中對 PLC 的變量進行關(guān)聯(lián)即可。

wKgZomWl8gmATzgnAADM9SMCNeM101.jpg

10. PLC編程

10.1 編程工具 STEP 7

購買了S1200 并不意味著你能免費使用它的開發(fā)軟件。但是沒關(guān)系,網(wǎng)上有很多破解軟件。有意思的是,其中有些資源就是西門子公司的人故意釋放出來的,他們可能想占有更多的市場。要對西門子的 PLC 編程必須使用專用的軟件:STEP 7 ,下圖是 STEP 7 的安裝過程。

wKgZomWl8gqAAyTjAAE8z6oFSAA035.jpg

實際上,STEP 7 是過時的名稱,現(xiàn)在西門子想將它和另外幾個自動化軟件都統(tǒng)一成一個平臺,適用于西門子旗下所有的設(shè)備,這個平臺被稱為:TIA Portal(博途),本文使用的就是 TIA V13。西門子公司為了保持延續(xù)性,軟件的名稱有時是 STEP 7,有時又用 TIA,本文我為了與歷史統(tǒng)一還叫 STEP 7 好了。西門子的軟件跟硬件一樣種類繁多,光 STEP 7 就有幾個版本,例如專業(yè)版(professional SP1,如下圖左所示),而每個版本又有不同的更新包。注意 SP1 可能缺少某些功能(下面我會提到),因此我使用了更新包。具體來說,我使用的是 STEP 7 V13.0 SP1 Upd8,如下圖右所示。

wKgZomWl8gqAJ6iXAABy9WxXb5U417.png

在軟件安裝時我們注意到有這樣的說明:STEP 7是用于編程的工程組態(tài)工具。要使用 PLC,編程只是一方面,還有一個重要的工作就是“組態(tài)”?!敖M態(tài)”說白了就是“配置”,配置 PLC 的輸入輸出接口、參數(shù)、功能等等。首先,在“設(shè)備組態(tài)”頁面選擇我們的 PLC 型號就可以了。

10.2 西門子PLC的硬件資源要想用好PLC,就要熟悉它的一些特點,下面我們就了解一下 S1215C 的特點。1215C的內(nèi)存有多大呢?

我們用電腦連接上PLC,然后在博途軟件左側(cè)欄雙擊“在線和診斷”,然后在打開窗口中點擊“存儲器”,如下圖所示。

wKgZomWl8gqAOavOAAEhWyZLE3U433.jpg

可以看到這里有三個存儲器,分別是:裝載存儲器、工作存儲器和保持存儲器。并且可以看到三個存儲器的大小,分別是:

1. 裝載存儲器:4194304 41943044194304 Byte ÷1024÷1024=4 div 1024 div 1024= 4÷1024÷1024=4MB

2. 工作存儲器:128000 128000128000 Byte ÷1024=125 div 1024= 125÷1024=125KB

3. 保持存儲器:10240 1024010240 Byte ÷1024=10 div 1024= 10÷1024=10KB

這和系統(tǒng)手冊中給出的數(shù)值是一樣的,如下:

wKgZomWl8gqAGanAAACkMKa6yOM919.jpg

你看完是不是都哭了,10年前的手機存儲器都比這要大。這三個存儲器各有什么作用呢?

1. 裝載存儲器:用于存儲用戶項目文件(例如:用戶程序、組態(tài)信息),相當(dāng)于硬盤;

2. 工作存儲器:CPU在執(zhí)行用戶程序時會將一些項目內(nèi)容從裝載存儲區(qū)復(fù)制到工作存儲區(qū),相當(dāng)于電腦的內(nèi)存;

3. 保持存儲器:掉電后數(shù)據(jù)仍然保持。如果你希望一些數(shù)據(jù)能在斷電后一直保持就要使用這個存儲器。但遺憾的是,小氣的西門子公司只給了我們10KB。

PLC 掃描一次程序需要多長時間呢?

PLC會自動記錄時間,在同一頁面,打開“循環(huán)時間”,就能看到PLC完整執(zhí)行一遍程序需要的時間,如下圖所示。這個時間不是固定的,取決于你的程序長短,一般的執(zhí)行時間在3毫秒以內(nèi)。

wKgZomWl8gqAbzAtAAEIxU-JvxU142.jpg

10.3 西門子PLC的軟件資源

西門子提供哪些函數(shù)運算呢?工業(yè)控制語言唯一的國際標準——IEC61131-3 規(guī)定了46個基本函數(shù),西門子都支持。除此以外,我們常用的還有定時器等。AGV 屬于移動機器人,而機器人的控制本質(zhì)是數(shù)學(xué)計算,所以我重點說說其中的數(shù)學(xué)函數(shù),共有18個:

數(shù)字運算:ABS、SQRT、LOG、LN、EXP、SIN、COS、TAN、ASIN、ACOS、ATAN;

算術(shù)運算:ADD、SUB、MUL、DIV、MOD、EXPT、MOVE;

當(dāng)然還有:>、< 比較運算符。

翻開另一款控制器品牌——倍福的手冊,你會發(fā)現(xiàn)它同樣支持這幾個初級函數(shù)。

在組態(tài)界面,雙擊 CPU 模塊能看到這款 PLC 的其它功能介紹,例如周期定時器,如下圖所示。

wKgZomWl8gqAaOuKAAItvlcAenE631.jpg

如果你使用了觸摸屏,有一點值得注意:在“保護”頁面中有一個選項需要勾選:“允許從遠程伙伴使用PUT/GET通信訪問”,如下圖所示。如果不勾選這個選項,你看你無法用觸摸屏讀寫 PLC 內(nèi)存中的數(shù)據(jù)。讓筆者奇怪的是,像這樣的細節(jié)幾乎在所有的手冊、教程中都找不到,但卻又很重要。

wKgZomWl8guAFrfJAAGxs7aBxqs678.jpg

10.4 西門子PLC的編程方式

西門子PLC 的編程符合國際工業(yè)編程語言標準 IEC-611313,因此跟倍福等廠家的差不多。

10.4.1 定義常量

有些量我們要經(jīng)常使用(例如圓周率 π piπ),如果每次都用數(shù)值來做運算一方面輸入很容易出錯,另一方面如果想對其進行更改那要改很多處,非常繁瑣。一個方便的做法是將其定義為一個全局的“常數(shù)”。使用 PLC 和 C 語言等高級語言相同的一點是,你需要為變量分配內(nèi)存地址。分配好地址后如何對其賦值呢?因為常量只需要賦一次值即可,所以我們選擇在 Startup 塊中對其賦值。Startup 塊在每次 PLC 上電后只執(zhí)行一次。西門子中有些塊的序號是系統(tǒng)預(yù)留的,比如 Startup 就是 OB100。我們注意到,在博圖軟件中,全局變量用雙引號表示(例如"PI"),而局部變量前面帶個井號(下面會碰到)。

wKgZomWl8guAYh5oAAG_lK-PCJk012.jpg

wKgZomWl8guAEXWBAAGXR8Gu8_g259.jpg

10.4.2 定義函數(shù)

西門子自帶的函數(shù)只能完成簡單的功能,為了實現(xiàn)更高級的控制我們還要自己寫一些函數(shù)。筆者在開發(fā)機器人控制器的過程中發(fā)現(xiàn),網(wǎng)上公開的PLC函數(shù)庫很少,目前筆者只知道OSCAT庫。大家都在討論基本的邏輯控制,卻鮮有人討論更高級的數(shù)學(xué)計算,可能 PLC 并不適合高級運動控制算法的實現(xiàn)。

下面我用一個很簡單的進行角度弧度轉(zhuǎn)換的函數(shù)為例來說明如何在 STEP 7 中自定義函數(shù)。

(1) 首先,我們新建一個函數(shù)FC(這個函數(shù)比較簡單,不需要背景數(shù)據(jù),所以不用 FB),實現(xiàn)的語言選擇 SCL 語言。函數(shù)名為“DegreeToRad”。

(2) 然后,我們要明確這個函數(shù)的輸入,在上面的變量定義欄中的 Input 項目中輸入 angleInDegree,類型選擇為 Real,如下圖所示。在Return 項目中將 DegreeToRad 變量的類型改為 Real,這里注意不要修改 DegreeToRad 變量的名字。

wKgZomWl8guASzr-AAHLYFgg0ag266.jpg

(3) 在下面的輸入框輸入變換公式。這里要用 := 對變量進行賦值。你會注意到,變量 PI 是用雙引號括起來的,而其它的變量(例如 angleInDegree)前面則帶一個井號。這是用來區(qū)分局部變量和全局變量的,局部變量用#開頭表示,而全局變量用引號表示。

10.4.3 定時器

定時器是我們會經(jīng)常使用的一個功能,想輸出隨時間變化的量、想延時觸發(fā)、想輸出周期信號都要借助定時器。西門子的每個定時器都對應(yīng)一個背景數(shù)據(jù)塊。筆者早期經(jīng)常犯的一個錯誤是,為了節(jié)省時間直接復(fù)制粘貼定時器塊。其錯誤是不管你復(fù)制多少次,其實最終還是同一個定時器,而且后面的會覆蓋前面的值。這個錯誤導(dǎo)致很多匪夷所思的錯誤,讓筆者頭疼了相當(dāng)長的時間。各位一定要注意,每使用一個定時器都要重新拖進來新建。

10.4.4 磁循跡算法

為了讓 AGV 始終沿著磁條行走,我們要編寫相應(yīng)的控制程序,也就是循跡程序。

循跡程序的邏輯可以非常簡單,我們的輸入是磁導(dǎo)航傳感器的讀數(shù),輸出則是舵輪轉(zhuǎn)向的速度(或差速輪的轉(zhuǎn)速差),磁條如果在 AGV 車體中心線的左側(cè),我們就往左偏轉(zhuǎn),反之在右側(cè)就往右偏轉(zhuǎn),而如果恰好在中間則保持不動。下面的仿真動畫展示了這種控制策略的效果,其中只使用了一個傳感器和一個舵輪,但已經(jīng)可以沿著曲線行走了。磁導(dǎo)航傳感器有六個點,安裝在前方,紅色的方格表示感應(yīng)到了磁條,白色表示沒有感應(yīng)到。

wKgZomWl8guAYp2nAAMxTanS0D0158.gif

作者:robinvista

來源:CSDN

審核編輯:湯梓紅

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請聯(lián)系本站處理。 舉報投訴
  • 控制系統(tǒng)
    +關(guān)注

    關(guān)注

    41

    文章

    6417

    瀏覽量

    110092
  • 西門子
    +關(guān)注

    關(guān)注

    93

    文章

    2958

    瀏覽量

    114812
  • 操作系統(tǒng)
    +關(guān)注

    關(guān)注

    37

    文章

    6544

    瀏覽量

    122728
  • AGV
    AGV
    +關(guān)注

    關(guān)注

    26

    文章

    1216

    瀏覽量

    40833
  • S7-1200
    +關(guān)注

    關(guān)注

    11

    文章

    331

    瀏覽量

    17701

原文標題:如何用S7-1200從零開始搭建一個完整AGV控制系統(tǒng)

文章出處:【微信號:智能制造之家,微信公眾號:智能制造之家】歡迎添加關(guān)注!文章轉(zhuǎn)載請注明出處。

收藏 人收藏

    評論

    相關(guān)推薦

    基于S7-1200的AGV控制系統(tǒng)設(shè)計方案

    本文介紹自動導(dǎo)引AGV控制系統(tǒng)實現(xiàn)過程,分為
    的頭像 發(fā)表于 01-15 14:26 ?9898次閱讀
    基于S7-1200的<b class='flag-5'>AGV</b><b class='flag-5'>控制系統(tǒng)</b>設(shè)計方案

    AGV系統(tǒng)構(gòu)成

    ,地面控制系統(tǒng)AGV系統(tǒng)的固定設(shè)備,主要負責(zé)任務(wù)分配,車輛調(diào)度,路徑(線)管理,交通管理,自動充電等功能;車載控制系統(tǒng)在收到上位
    發(fā)表于 12-22 17:02

    看無線控制AGV小車如何放料取料

    的需求DW-J01系列無線開關(guān)量輸入輸出模塊在AGV智能自動化小車工業(yè)無線控制系統(tǒng)解決方案,為AGV智能小車企業(yè)提供基于工業(yè)無線的控制方式,
    發(fā)表于 07-19 12:04

    無線控制AGV小車如何放料取料

    DW-J01系列無線開關(guān)量輸入輸出模塊在AGV智能自動化小車工業(yè)無線控制系統(tǒng)解決方案,為AGV智能小車企業(yè)提供基于工業(yè)無線的控制方式,為最終
    發(fā)表于 07-24 09:22

    AGV小車上的無線應(yīng)用

    ,連接電纜就容易糾纏在一起,影響了企業(yè)的生產(chǎn)效率。眾多AGV生產(chǎn)小車的需求和最終用戶使用有線控制小車帶來的煩惱,DW-J系列無線開關(guān)量控制器在AGV智能
    發(fā)表于 09-05 16:17

    無線控制AGV小車的放料取料

    開關(guān)量輸入輸出模塊在AGV智能自動化小車工業(yè)無線控制系統(tǒng)解決方案,為AGV智能小車企業(yè)提供基于工業(yè)無線的控制方式,為最終用戶
    發(fā)表于 06-18 04:21

    自動導(dǎo)引案例

    作者:Alix Paultre, Embedded Computing Design在工廠自動化、倉庫配貨以及其他物料運輸環(huán)境中正在采用自動導(dǎo)引 (
    發(fā)表于 07-16 07:14

    介紹自動導(dǎo)引AGV)簡易車載控制系統(tǒng)實現(xiàn)過程

    目的   本文介紹自動導(dǎo)引AGV)簡易車載控制系統(tǒng)實現(xiàn)
    發(fā)表于 07-28 08:28

    自動導(dǎo)引AGV)車載控制系統(tǒng)實現(xiàn)過程

    目的   本文介紹自動導(dǎo)引AGV)車載控制系統(tǒng)實現(xiàn)過程
    發(fā)表于 09-07 08:16

    AGV的基本概念及基本結(jié)構(gòu)組成

    控制系統(tǒng)2.AGV安全系統(tǒng)3.激光導(dǎo)航控制系統(tǒng)三、AGV的調(diào)度系統(tǒng)1.
    發(fā)表于 09-14 08:23

    AGV小車如何實現(xiàn)無人搬運自動導(dǎo)引代替人工

    實現(xiàn)工廠級和車間級的AGV系統(tǒng)車輛管理、交通管理、調(diào)度管理、運行管理、任務(wù)管理、通信管理、自動充電功能。系統(tǒng)可以與MES
    發(fā)表于 09-05 19:29

    激光導(dǎo)引AGV自動引導(dǎo)系統(tǒng)設(shè)計

    激光導(dǎo)引AGV自動引導(dǎo)系統(tǒng)設(shè)計激光導(dǎo)引AGV自動
    發(fā)表于 12-18 16:31 ?49次下載

    自動導(dǎo)引AGV)應(yīng)用的相關(guān)安全使用規(guī)范

    許多事故的造成是因為操作知識的缺乏、在使用及維護過程中沒有認真按照正確的安全指令執(zhí)行。 日前,《自動導(dǎo)引AGV)在危險生產(chǎn)環(huán)境應(yīng)用的安全
    發(fā)表于 06-30 16:05 ?1942次閱讀

    詳解AGV小車和控制系統(tǒng)之間的通信過程

    本案例主要描述AGV小車和控制系統(tǒng)之間的通信過程,通過VDA 5050標準接口、MQTT通信協(xié)議和虹科HiveMQ實現(xiàn)AGV小車和
    的頭像 發(fā)表于 05-13 11:11 ?7486次閱讀

    無人搬運自動導(dǎo)引(AGV)控制系統(tǒng)實現(xiàn)過程

    本文介紹自動導(dǎo)引(AGV)控制系統(tǒng)實現(xiàn)過程,分為
    發(fā)表于 10-31 10:44 ?3996次閱讀
    無人搬運<b class='flag-5'>自動</b><b class='flag-5'>導(dǎo)引</b><b class='flag-5'>車</b>(<b class='flag-5'>AGV</b>)<b class='flag-5'>控制系統(tǒng)</b>的<b class='flag-5'>實現(xiàn)</b><b class='flag-5'>過程</b>