步驟1:簡介
在此指導(dǎo)中,我將處理:
2種方法來對與某種機(jī)器(包括按鈕,開關(guān)和LED)鏈接的arduino進(jìn)行編程
1-使用SM庫(狀態(tài)機(jī))使用arduino 1.6.x IDE的第一種方法
2-使用Yakindu(使用以下方法創(chuàng)建的狀態(tài)圖編輯器項目)的第二種方法蝕環(huán)境:繪制狀態(tài)機(jī),然后它會生成代碼以傳輸?shù)紸rduino板。
與
相關(guān)的兩種方法來監(jiān)控狀態(tài)機(jī)運(yùn)行的SCADA或虛擬HMI:
1-在Android 4.4下:Unigo Evolution,這是一個免費(fèi)的應(yīng)用程序,沒有代碼,只有項目可放置在屏幕上,并且Modbus TCP
2 -在Windows 8下:一個免費(fèi)項目AdvancedHMI,它需要Visual Studio 2013,無需任何代碼和項目即可放置在屏幕上和modbus TCP
因此您可以繪制f帶有SFC的功能性序列(在自動化中為:順序功能圖),將其轉(zhuǎn)換為狀態(tài)圖(非常接近),對其進(jìn)行編程(Yakindu或Arduino SM lib),然后使用SCADA(Unigo android或AdvancedHMI Windows)對其進(jìn)行監(jiān)督)。
第2步:實板說明:
示意圖:
我使用了Arduino UNO板,而不是克隆板,因為Yakindu不能僅將UNO和Mega板發(fā)送到任何克隆程序。
我可以擁有32個數(shù)字I/O,帶有2個SPI擴(kuò)展器(如MCP23S17)(2x16 I/O)和2個更多的模擬12位輸出(不經(jīng)過PWM濾波的真實模擬),以及2個SPI DAC,如MCP4921。
我沒有畫出以太網(wǎng)屏蔽,但是您需要用它來監(jiān)視系統(tǒng):因此,引腳4、10、11、12和13不得用于其他任何用途,顯然引腳0和1僅用于RX TX。
真實的照片:
需要8個按鈕:
4個用于手動模式:每個燈一個led
1緊急停止:如果按下,則處于正常模式,松開:緊急
1處于自動模式,如果每個LED松開,則依次點(diǎn)亮和熄滅順序指示燈:手動模式,以無順序控制每個led
在自動模式下為RUN
1在自動模式下為STOP
4 led模擬您想要的任何東西(繼電器,閥門。..)
我給出程序中使用的每個按鈕和指示燈的名稱。
步驟3:編程順序? SFC和狀態(tài)圖
我制作了一個非常簡單的SFC來描述系統(tǒng)應(yīng)該做什么。
3需要SFC:
SFCsecu進(jìn)入或退出緊急模式,這是主SFC啟動其他
SFCsecu啟動的SFC自動手冊,您可以訪問
自動模式或手動模式
SFC運(yùn)行停止,掃描并存儲是否有人按下DCY(RUN)或FCY(STOP)
這些SFC以偽隨機(jī)方式運(yùn)行。
然后我將它們轉(zhuǎn)換為狀態(tài)圖:
一臺主計算機(jī)(緊急情況)啟動了另外兩個從屬計算機(jī)
一個用于掃描和掃描的從屬計算機(jī)記住DCY和FCY
從屬設(shè)備進(jìn)入自動或手動模式
另一件事:當(dāng)您按下DCY時,您可以在虛擬微調(diào)器上引導(dǎo)模擬輸出一個scada,當(dāng)您按FCY鍵時,模擬輸出降至0V。
狀態(tài)圖可幫助您對arduino進(jìn)行編程。
第4步:使用Arduino IDE 1.6編程。X
我為您提供了轉(zhuǎn)換先前圖表的代碼。我也需要3個附加庫。
您還將需要地址表來了解用于什么引腳以及modbus寄存器對應(yīng)的地址。
步驟5:使用YAKINDU編程
首先在以下網(wǎng)址下載免費(fèi)項目版本2.9(非專業(yè)版):
https://www。 itemis.com/en/yakindu/state-machine/
然后按照提供的教程進(jìn)行操作:與上次下載程序相比,有一些修改,僅適用于“ xxxconnector”不同部分的名稱。 .cpp”文件完成。
圖片:狀態(tài)機(jī)的圖,項目中文件夾的視圖及其從arduino導(dǎo)入的庫,“ xxxconnector.cpp”視圖以建立鏈接在板或SCADA的轉(zhuǎn)換/狀態(tài)與實際輸入/輸出之間。
我給您提供您僅需導(dǎo)入到自動創(chuàng)建的工作區(qū)中的項目。
還提供:導(dǎo)入Yakindu所需的庫,以及在tut中描述的一些更改
步驟6:使用AdvancedHMI對其進(jìn)行監(jiān)督
首先在以下位置下載Visual Studio Express 2013或更高版本:
https://www.microsoft.com/fr-fr/download/details.a 。..
然后在以下位置下載AdvancedHMI項目:
https://sourceforge.net/projects/advancedhmi/?SetF 。..
我為您提供了我繪制的SCADA圖片(帶有相應(yīng)的Modbus寄存器地址),并且沒有代碼進(jìn)行編程,項目已修改和簡短的教程。
第7步:使用Unigo Evolution對其進(jìn)行監(jiān)督
您需要一個Android devide與android 4.4(套件kat)和一個7英寸的屏幕。
我給你我繪制的SCADA的圖片(以及相應(yīng)的modbus寄存器地址),以及使用Unigo的簡要教程(無需代碼),一個包含圖片的文件夾應(yīng)用程序和項目將工業(yè)照明燈和按鈕放置在內(nèi)部SD上創(chuàng)建的UniGOPictures文件夾中。
步驟8:結(jié)論
它是一個巨大的要求將2種不同的編程方式和2種不同的監(jiān)督方式放在一起。一開始很難習(xí)慣每種方式的技能。但是現(xiàn)在它可以工作,并且一旦被理解,您就可以控制更復(fù)雜的系統(tǒng)。
責(zé)任編輯:wv
-
編程
+關(guān)注
關(guān)注
88文章
3682瀏覽量
94872 -
Arduino
+關(guān)注
關(guān)注
188文章
6492瀏覽量
190104
發(fā)布評論請先 登錄
使用MATLAB進(jìn)行無監(jiān)督學(xué)習(xí)

評論