RM新时代网站-首页

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

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

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

Arduino和AutomationDirect在ProOpen PLC中合并

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

為什么對(duì)PLC編程這么感興趣?可以說,因?yàn)?a href="http://hljzzgx.com/v/tag/323/" target="_blank">PLC是大多數(shù)工業(yè)自動(dòng)化系統(tǒng)的支柱,所以理解使用這種設(shè)備的復(fù)雜性當(dāng)然很重要。這引出了一個(gè)重要的問題:為什么PLC首先成為如此重要的控制架構(gòu)?

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

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

wKgZomYo09eAAXqmAAEI5DfXhys691.jpg

圖一。

我的工作臺(tái)設(shè)置包括電源以太網(wǎng)適配器、CPU和I/O模塊。你可以只用CPU和I/O模塊來完成這個(gè)項(xiàng)目!

Arduino與PLC有何不同?

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

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

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

開始:我需要什么?

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

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

由于編程使用Arduino軟件,您可以在Windows、Mac或Linux上對(duì)該P(yáng)LC進(jìn)行編程!本教程是在軟件版本1.8.19上測(cè)試的(向下滾動(dòng)并找到“傳統(tǒng)IDE”按鈕在下載頁面上).我個(gè)人沒有在Arduino最新的2.0版本平臺(tái)上測(cè)試過。

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

wKgaomYo09iAAX2VAACdyfJZgOE587.jpg

圖二。

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

配置軟件

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

這圖書館提供對(duì)運(yùn)行I/O和通信功能的所有命令的方便訪問。

這董事會(huì)經(jīng)理提供有關(guān)P1AM硬件本身的信息

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

對(duì)于本教程,我只使用Arduino IDE,而不是附加的ProdictivityBlocks軟件。當(dāng)您加載代碼時(shí),您可能會(huì)遇到即使是那些使用過Arduino產(chǎn)品的人也不熟悉的錯(cuò)誤,所以請(qǐng)務(wù)必查看解決紛爭(zhēng)一節(jié)。

設(shè)計(jì)您的代碼

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

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

標(biāo)簽名稱變量

在這個(gè)IDE中,變量名在整個(gè)代碼中使用,可能很多次,就像標(biāo)簽一樣。在每一個(gè)實(shí)例中刪除和重新鍵入新的標(biāo)記名將是一場(chǎng)噩夢(mèng),所以在代碼的最頂端,我創(chuàng)建了一個(gè)部分來定義我的輸入和輸出變量名。

在我的第一個(gè)簡(jiǎn)單項(xiàng)目中,我有一個(gè)藍(lán)色按鈕連接到輸入終端1,一個(gè)綠色按鈕連接到輸入終端2。輸出模塊上還有標(biāo)準(zhǔn)的紅色LED指示燈。你可以按照我的例子,輸入你想使用的標(biāo)簽名。

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

wKgZomYo09qABr7jAAA-0a73z2E168.jpg

圖3。

定義標(biāo)記名變量。前兩個(gè)已經(jīng)為我的程序設(shè)置好了。我們還需要8倍的輸出。

例行程序:設(shè)置

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

wKgZomYo09yAY6IMAAAOyj1SVtc388.jpg

圖4。

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

子程序:readModules

在典型的PLC掃描中,在執(zhí)行任何邏輯之前,檢測(cè)所有輸入點(diǎn)的狀態(tài)。這個(gè)簡(jiǎn)單的子程序?qū)@得這個(gè)組合模塊上的所有輸入地址(它有8個(gè)輸入和8個(gè)輸出)。

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

wKgaomYo092AYPM9AABaXTkEtrM130.jpg

圖5。

該子程序讀取所有輸入模塊點(diǎn)。為了方便起見,我們?cè)诔绦虻捻敳慷x了槽號(hào)。

主例程:循環(huán)

主例程按此順序執(zhí)行三項(xiàng)基本任務(wù):

運(yùn)行readModules子程序

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

運(yùn)行writeModules子例程。

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

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

對(duì)于我的簡(jiǎn)單測(cè)試,代碼檢查紅色和綠色按鈕,如果兩個(gè)按鈕都通電,輸出LED也將通電。

wKgZomYo09-ALtzfAABWPJeMAA0716.jpg

圖6。

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

子程序:寫模塊

一旦邏輯被執(zhí)行,所有I/O點(diǎn)的臨時(shí)狀態(tài)被存儲(chǔ),但尚未寫入I/O模塊。這個(gè)最后的子例程的目的是寫入這些值。

這意味著隨著代碼長(zhǎng)度的增加,會(huì)有輕微的延遲,這與傳統(tǒng)的PLC更相似,而與典型的微控制器代碼有點(diǎn)不同,后者可以隨時(shí)寫入值。

C++環(huán)境的靈活性允許程序員對(duì)輸出響應(yīng)邏輯條件的時(shí)間、方式和原因有更多的控制。

wKgaomYo0-CATgdjAAB-0TId6Tc158.jpg

圖7。

這個(gè)例程接收所有更新的標(biāo)簽值,并將它們寫入適當(dāng)?shù)妮敵鼋K端。

ProOpen故障排除提示

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

首先,在使用箭頭按鈕上傳之前,請(qǐng)始終按下“驗(yàn)證”復(fù)選標(biāo)記按鈕。這樣,您可以將錯(cuò)誤隔離到代碼錯(cuò)誤或加載錯(cuò)誤。首先解決代碼錯(cuò)誤。

wKgaomYo0-KAeR99AAA9tbjKx2I417.jpg

圖8。

加載代碼時(shí)可能出現(xiàn)COM錯(cuò)誤。

重新啟動(dòng)Arduino IDE

由于COM端口當(dāng)前正被某個(gè)現(xiàn)有項(xiàng)目使用,因此存在一些錯(cuò)誤。關(guān)閉和打開IDE可以清除一些問題并刷新板和端口標(biāo)識(shí)。如果這不起作用,請(qǐng)繼續(xù)下一步。

wKgaomYo0-OAVZimAACSxO3ybFE145.jpg

圖9。

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

COM端口號(hào)

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

wKgZomYo0-WADirSAADczZ27lBU007.jpg

圖10。

如果遇到此錯(cuò)誤,請(qǐng)雙擊重置按鈕,選擇COM端口,然后再次上傳。

引導(dǎo)加載程序模式的重置按鈕

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

一個(gè)常見的解決方法是快速按下CPU上的“重置”按鈕兩次,然后選擇適當(dāng)?shù)腃OM端口(它可能會(huì)改變),并再次上傳。


這個(gè)重置按鈕將CPU置于停止代碼執(zhí)行并允許加載的模式,有點(diǎn)像將PLC置于停止模式。

代碼停止執(zhí)行

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

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

將微控制器用作PLC

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

審核編輯 黃宇

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

    關(guān)注

    48

    文章

    7542

    瀏覽量

    151310
  • mcu
    mcu
    +關(guān)注

    關(guān)注

    146

    文章

    17123

    瀏覽量

    350973
  • plc
    plc
    +關(guān)注

    關(guān)注

    5010

    文章

    13271

    瀏覽量

    463042
  • Arduino
    +關(guān)注

    關(guān)注

    188

    文章

    6468

    瀏覽量

    186948
收藏 人收藏

    評(píng)論

    相關(guān)推薦

    【eda經(jīng)驗(yàn)分享】Allegro如何合并銅皮

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

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

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

    CAD怎么合并設(shè)備表?CAD合并設(shè)備表操作技巧

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

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

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

    CAD軟件怎么合并單元格?

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

    arduino ide安裝esp32的arduino框架時(shí)的問題求解

    arduino ide安裝esp32的arduino框架時(shí)的問題在arduino ide
    發(fā)表于 03-06 08:22

    PLC系統(tǒng)水廠的應(yīng)用

    本文主要講述的是PLC系統(tǒng)水廠的應(yīng)用。
    發(fā)表于 04-09 15:37 ?41次下載

    PLC紙機(jī)傳動(dòng)控制的應(yīng)用

    PLC紙機(jī)傳動(dòng)控制的應(yīng)用 重點(diǎn)介紹了以PLC為控制單元造紙機(jī)傳動(dòng)系統(tǒng)的構(gòu)建、設(shè)計(jì)及其應(yīng)
    發(fā)表于 06-13 15:52 ?1479次閱讀
    <b class='flag-5'>PLC</b><b class='flag-5'>在</b>紙機(jī)傳動(dòng)控制<b class='flag-5'>中</b>的應(yīng)用

    Arduino IED安裝TimeOne庫文件

    Arduino IED安裝TimeOne庫文件
    發(fā)表于 04-25 09:45 ?4次下載

    基于Arduino、PLC的水處理廠SCADA

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

    基于ArduinoPLC的工業(yè)應(yīng)用

    電子發(fā)燒友網(wǎng)站提供《基于ArduinoPLC的工業(yè)應(yīng)用.zip》資料免費(fèi)下載
    發(fā)表于 11-18 09:20 ?0次下載
    基于<b class='flag-5'>Arduino</b>的<b class='flag-5'>PLC</b>的工業(yè)應(yīng)用

    Arduino制作OLED位圖圖形

    電子發(fā)燒友網(wǎng)站提供《Arduino制作OLED位圖圖形.zip》資料免費(fèi)下載
    發(fā)表于 06-16 10:34 ?1次下載
    <b class='flag-5'>在</b><b class='flag-5'>Arduino</b><b class='flag-5'>中</b>制作OLED位圖圖形

    Arduino播放音頻

    電子發(fā)燒友網(wǎng)站提供《Arduino播放音頻.zip》資料免費(fèi)下載
    發(fā)表于 06-25 15:16 ?0次下載
    <b class='flag-5'>在</b><b class='flag-5'>Arduino</b><b class='flag-5'>中</b>播放音頻

    如何在COMSOL優(yōu)化合并解?

    如何在COMSOL優(yōu)化合并解? COMSOL,優(yōu)化合并解指的是分析中使用優(yōu)化模塊以找到最
    的頭像 發(fā)表于 10-29 11:35 ?1312次閱讀

    PLC現(xiàn)場(chǎng)總線的應(yīng)用

      隨著工業(yè)自動(dòng)化技術(shù)的飛速發(fā)展,可編程邏輯控制器(PLC)作為工業(yè)自動(dòng)化領(lǐng)域的核心設(shè)備,其應(yīng)用日益廣泛?,F(xiàn)場(chǎng)總線作為連接PLC與現(xiàn)場(chǎng)設(shè)備的重要通信技術(shù),其PLC控制系統(tǒng)
    的頭像 發(fā)表于 06-06 11:40 ?693次閱讀
    RM新时代网站-首页