<acronym id="s8ci2"><small id="s8ci2"></small></acronym>
<rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
<acronym id="s8ci2"></acronym>
<acronym id="s8ci2"><center id="s8ci2"></center></acronym>
0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
創作中心

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

3天內不再提示

Arduino和AutomationDirect在ProOpen PLC中合并

eeDesign ? 2024-04-24 17:41 ? 次閱讀

為什么對PLC編程這么感興趣?可以說,因為PLC是大多數工業自動化系統的支柱,所以理解使用這種設備的復雜性當然很重要。這引出了一個重要的問題:為什么PLC首先成為如此重要的控制架構?

關于這件事有很多值得商榷的觀點,但我最堅定的一個觀點是梯形邏輯編程結構;能夠在看起來和感覺上都像運行工廠的電氣原理圖的環境中編程。電工、工程師和技術人員都可以很容易地理解和排除這些程序的故障。

今天,我們將稍微擴展一下梯形邏輯的范圍。AutomationDirect以包括PLC在內的大量自動化設備而聞名,它提供了一種稱為ProOpen的模型,這是一種模塊化PLC,具有Arduino MKR Zero微控制器的大腦。

wKgZomYo09eAAXqmAAEI5DfXhys691.jpg

圖一。

我的工作臺設置包括電源、以太網適配器、CPU和I/O模塊。你可以只用CPU和I/O模塊來完成這個項目!

Arduino與PLC有何不同?

這是一個重大的根本性問題。一;一個Arduino只是一塊板子這提供了對處理器芯片的I/O引腳的簡單訪問。但除此之外,編程環境是免費的、簡單的、基于文本的,用戶社區是巨大的和全球性的。

如果我們想得到具體的,有兩個主要的區別。Arduino是用C++(基于文本,而不是梯形邏輯)的變體編程的,Arduino也沒有簡單的卡扣式I/O模塊,除了可以放置在可堆疊接頭上的某些“屏蔽”,但這些看起來不太像任何控制工程師都會認識的PLC I/O模塊。

然而,ProOpen結合了Arduino MKR板的功能和靈活性,并將其封裝到DIN導軌安裝的CPU、電源和I/O模塊系列中,與Productivity 100 PLC系列兼容。如果我們能利用這一點,我們就有了一個非常強大的PLC。

開始:我需要什么?

這個項目,雖然不像市場上的一些PLC那樣昂貴,但仍然需要幾個項目才能成功。我們將使用P1AM-100 CPU和組合輸入/輸出模塊P1-16CDR。在我的設置中,我還包括了一個以太網模塊和一個電源,但這個介紹性項目將成功沒有這些。

除了PLC本身,我們還需要一個24伏電源和微型USB電纜,包括電源和數據(您的計算機應該在設備管理器中注冊一個新設備)。

由于編程使用Arduino軟件,您可以在Windows、Mac或Linux上對該PLC進行編程!本教程是在軟件版本1.8.19上測試的(向下滾動并找到“傳統IDE”按鈕在下載頁面上).我個人沒有在Arduino最新的2.0版本平臺上測試過。

硬件設置非常簡單。I/O模塊連接在CPU的右側,并固定在DIN導軌上。電源已連接,在將USB電纜連接到CPU之前,我接通了24伏電源。

wKgaomYo09iAAX2VAACdyfJZgOE587.jpg

圖二。

所需硬件:P1AM-100 CPU和P1-16CDR I/O模塊,以及用于接線的端子板。

配置軟件

要正確使用Arduino軟件,您需要添加兩個元素:

這圖書館提供對運行I/O和通信功能的所有命令的方便訪問。

這董事會經理提供有關P1AM硬件本身的信息。

這些說明已經很好地提供了手冊中的步驟從AutomationDirect開始,從第1-5頁開始,一直到第1-6頁的底部。

對于本教程,我只使用Arduino IDE,而不是附加的ProdictivityBlocks軟件。當您加載代碼時,您可能會遇到即使是那些使用過Arduino產品的人也不熟悉的錯誤,所以請務必查看解決紛爭一節。

設計您的代碼

如果您不熟悉C++編程的基礎,它包含了梯形邏輯的所有相同元素,但格式完全不同。

假設我使用相同的硬件設置,我提供了一個模板來幫助我開始編寫任何代碼。下面是代碼,從一開始就包含了庫。我將對它進行分解,并解釋每個組件以及它與梯形邏輯項目的關系。

標簽名稱變量

在這個IDE中,變量名在整個代碼中使用,可能很多次,就像標簽一樣。在每一個實例中刪除和重新鍵入新的標記名將是一場噩夢,所以在代碼的最頂端,我創建了一個部分來定義我的輸入和輸出變量名。

在我的第一個簡單項目中,我有一個藍色按鈕連接到輸入終端1,一個綠色按鈕連接到輸入終端2。輸出模塊上還有標準的紅色LED指示燈。你可以按照我的例子,輸入你想使用的標簽名。

帶“int”的行是指每個I/O點的整數值。這些必須在代碼的頂部全局定義,就像PLC程序中所有I/O地址的控制器范圍標記一樣。

wKgZomYo09qABr7jAAA-0a73z2E168.jpg

圖3。

定義標記名變量。前兩個已經為我的程序設置好了。我們還需要8倍的輸出。

例行程序:設置

所有PLC都包含第一周期掃描邏輯。我們通常會忽略該例程并將其留空,但C++中的設置例程包括通信通道的初始化和PLC響應的驗證。

wKgZomYo09yAY6IMAAAOyj1SVtc388.jpg

圖4。

設置例程初始化串行通信(如果我們最終需要它)并驗證CPU狀態。

子程序:readModules

在典型的PLC掃描中,在執行任何邏輯之前,檢測所有輸入點的狀態。這個簡單的子程序將獲得這個組合模塊上的所有輸入地址(它有8個輸入和8個輸出)。

如果其他模塊(甚至模擬輸入)被添加到項目中,它們也可以被添加到readModules例程中。

wKgaomYo092AYPM9AABaXTkEtrM130.jpg

圖5。

該子程序讀取所有輸入模塊點。為了方便起見,我們在程序的頂部定義了槽號。

主例程:循環

主例程按此順序執行三項基本任務:

運行readModules子程序

檢查我們代碼中的所有邏輯指令

運行writeModules子例程。

在步驟2中,我們唯一需要進行代碼編輯的地方是在所示的//注釋標記之間。

與其重新散列這個If/Else語句邏輯,不如看看我們以前的文章,描述如何在C++編碼環境中重新創建梯形邏輯.

對于我的簡單測試,代碼檢查紅色和綠色按鈕,如果兩個按鈕都通電,輸出LED也將通電。

wKgZomYo09-ALtzfAABWPJeMAA0716.jpg

圖6。

主例程實際執行用戶定義的邏輯。它不一定是梯形格式,但這可能會有所幫助。

子程序:寫模塊

一旦邏輯被執行,所有I/O點的臨時狀態被存儲,但尚未寫入I/O模塊。這個最后的子例程的目的是寫入這些值。

這意味著隨著代碼長度的增加,會有輕微的延遲,這與傳統的PLC更相似,而與典型的微控制器代碼有點不同,后者可以隨時寫入值。

C++環境的靈活性允許程序員對輸出響應邏輯條件的時間、方式和原因有更多的控制。

wKgaomYo0-CATgdjAAB-0TId6Tc158.jpg

圖7。

這個例程接收所有更新的標簽值,并將它們寫入適當的輸出終端。

ProOpen故障排除提示

由于內置MKRZero板,有一些小技巧可以幫助編程。

首先,在使用箭頭按鈕上傳之前,請始終按下“驗證”復選標記按鈕。這樣,您可以將錯誤隔離到代碼錯誤或加載錯誤。首先解決代碼錯誤。

wKgaomYo0-KAeR99AAA9tbjKx2I417.jpg

圖8。

加載代碼時可能出現COM錯誤。

重新啟動Arduino IDE

由于COM端口當前正被某個現有項目使用,因此存在一些錯誤。關閉和打開IDE可以清除一些問題并刷新板和端口標識。如果這不起作用,請繼續下一步。

wKgaomYo0-OAVZimAACSxO3ybFE145.jpg

圖9。

這顯示了如何為Windows機器正確選擇板和端口。

COM端口號

如果程序在加載過程中報告錯誤,請驗證板的選擇是否正確,以及COM端口是否正確。下圖顯示了正確的值(盡管您的COM端口號可能不同)。

wKgZomYo0-WADirSAADczZ27lBU007.jpg

圖10。

如果遇到此錯誤,請雙擊重置按鈕,選擇COM端口,然后再次上傳。

引導加載程序模式的重置按鈕

加載程序時,可能會出現通信錯誤。與熟悉的Arduino Uno板相比,處理CPU USB和串行通信之間轉換的芯片有所不同。簡單地再次按“上傳”或重啟可能無法解決問題。

一個常見的解決方法是快速按下CPU上的“重置”按鈕兩次,然后選擇適當的COM端口(它可能會改變),并再次上傳。


這個重置按鈕將CPU置于停止代碼執行并允許加載的模式,有點像將PLC置于停止模式。

代碼停止執行

在一些罕見的情況下,代碼似乎會在一段時間后停止執行(我的經驗是大約12小時)。在我的情況下,CPU在此期間通過USB連接到計算機。拔下USB并按下“重置”1次后,代碼仍然無法執行,需要重新上傳代碼。

在第二個測試中,成功上傳后立即斷開USB連接,代碼繼續無限期執行(至少在撰寫本節前幾天)。

將微控制器用作PLC

微處理器嵌入PLC機箱的過程與大多數PLC的現實并沒有太大的差距。然而,許多人會認為這一目的限制了微控制器的潛力,盡管這可能是真的,但PLC軟件無疑在工業領域提供了一些極端的優勢,迎合了不熟悉基于文本的編碼的操作員和技術人員的需求。這種PLC是一個很好的折衷方案,具有一些獨特的靈活性優勢。

審核編輯 黃宇

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 微控制器
    +關注

    關注

    48

    文章

    6831

    瀏覽量

    147840
  • mcu
    mcu
    +關注

    關注

    146

    文章

    16049

    瀏覽量

    344017
  • plc
    plc
    +關注

    關注

    4978

    文章

    12293

    瀏覽量

    455334
  • Arduino
    +關注

    關注

    185

    文章

    6430

    瀏覽量

    184986
收藏 人收藏

    評論

    相關推薦

    【eda經驗分享】Allegro如何合并銅皮

    問:Allegro如何合并銅皮(Merge Shapes)答:Allegro,Shape不僅可以是走線,還可以是各種其他屬性,例如Silkscreen,Place Bound,S
    發表于 11-12 17:49

    Arduino學習的問題

    Arduino IDE(arduino-1.6.0-windows),怎么能夠導入庫文件?在哪里可以下載到對應的庫文件?
    發表于 02-26 17:28

    CAD文字之CAD怎么合并文字?

    使用國產CAD軟件繪制給排水圖紙的過程,經常會需要進行CAD文字修改,那么你知道浩辰CAD給排水軟件如何合并文字嗎?接下來就和小編一
    發表于 01-18 16:34

    CAD怎么合并設備表?CAD合并設備表操作技巧

    `浩辰CAD電氣軟件中進行強電平面設計的過程,怎么合并設備表呢?可能有些剛開始進行CAD入門學習的小伙伴對此并不了解,下面就讓小編來給大家介紹一下正版CAD軟件——浩辰CAD電氣軟件
    發表于 05-25 16:08

    CAD軟件怎么合并表格?CAD表格合并技巧

    之前的CAD教程,小編使用浩辰CAD建筑軟件給CAD制圖初學入門者介紹了新建表格以及拆分表格的功能。那么,就有人問了:CAD軟件如何合并表格呢?別著急,接下來就給大家介紹。合并表格
    發表于 06-05 12:53

    Arduino搭建一個3*3的矩陣鍵盤

    矩陣鍵盤在51單片機的案例應用較多,但是Arduino很少使用,今天小編就特立獨行一次,Ardu
    發表于 01-12 06:09

    CAD軟件怎么合并單元格?

    使用國產CAD軟件繪制給排水CAD圖紙的過程,有些時候會需要合并單元格,那么各位CAD制圖初學入門者知道CAD怎么合并單元格嗎?下面就
    發表于 05-11 14:19

    一個帶有Arduino NANO V3的PLC項目

    描述PLC Arduino NANO 可編程梯形圖該項目是一個帶有 Arduino NANO V3 的 PLC,可以使用 LadderMaker 軟件
    發表于 08-23 06:54

    arduino ide安裝esp32的arduino框架時的問題求解

    arduino ide安裝esp32的arduino框架時的問題在arduino ide
    發表于 03-06 08:22

    Arduino PLC項目開關輸出LED卡(第4張,共5張)

    電子發燒友網站提供《Arduino PLC項目開關輸出LED卡(第4張,共5張).zip》資料免費下載
    發表于 08-16 10:33 ?2次下載
    <b class='flag-5'>Arduino</b> <b class='flag-5'>PLC</b>項目開關輸出LED卡(第4張,共5張)

    Arduino PLC項目輸入LED卡(第3張,共5張)

    電子發燒友網站提供《Arduino PLC項目輸入LED卡(第3張,共5張).zip》資料免費下載
    發表于 08-16 10:32 ?4次下載
    <b class='flag-5'>Arduino</b> <b class='flag-5'>PLC</b>項目輸入LED卡(第3張,共5張)

    Arduino PLC項目繼電器卡(第1張,共5張)

    電子發燒友網站提供《Arduino PLC項目繼電器卡(第1張,共5張).zip》資料免費下載
    發表于 08-16 10:31 ?2次下載
    <b class='flag-5'>Arduino</b> <b class='flag-5'>PLC</b>項目繼電器卡(第1張,共5張)

    Arduino PLC項目(第2張,共5張)

    電子發燒友網站提供《Arduino PLC項目(第2張,共5張).zip》資料免費下載
    發表于 08-16 10:29 ?6次下載
    <b class='flag-5'>Arduino</b> <b class='flag-5'>PLC</b>項目(第2張,共5張)

    基于Arduino、PLC的水處理廠SCADA

    電子發燒友網站提供《基于Arduino、PLC的水處理廠SCADA.zip》資料免費下載
    發表于 10-24 10:25 ?0次下載
    基于<b class='flag-5'>Arduino</b>、<b class='flag-5'>PLC</b>的水處理廠SCADA

    基于ArduinoPLC的工業應用

    電子發燒友網站提供《基于ArduinoPLC的工業應用.zip》資料免費下載
    發表于 11-18 09:20 ?0次下載
    基于<b class='flag-5'>Arduino</b>的<b class='flag-5'>PLC</b>的工業應用
    亚洲欧美日韩精品久久_久久精品AⅤ无码中文_日本中文字幕有码在线播放_亚洲视频高清不卡在线观看
    <acronym id="s8ci2"><small id="s8ci2"></small></acronym>
    <rt id="s8ci2"></rt><rt id="s8ci2"><optgroup id="s8ci2"></optgroup></rt>
    <acronym id="s8ci2"></acronym>
    <acronym id="s8ci2"><center id="s8ci2"></center></acronym>