手把手教你通過CODESYS V3進行PLC編程(二)

教程背景

在上一期教程中,我們已經完成了控制器設備的連接和配置。接下來的教程將繼續以宏集MC-Prime為例,假設控制器已經配置并連接到開發者的PC上,為您演示如何為控制器安裝合適的CODESYS V3版本創建第一個程序

一、安裝CODESYS

(一)選擇適合的版本

值得注意的是,控制器不能與任意編碼的V3版本一起使用,其對CODESYS V3的版本和相應的target要求取決于控制器的固件版本。因此,重要的是要為您的控制器安裝適配的CODESYS V3版本,而非直接使用CODESYS V3開發環境的最新版本。

要找到控制器的固件版本,請參考上一則教程中“通過web界面進行配置”的步驟,登錄到控制器的web界面,并打開“System Info”頁面。

如上圖所示,可以看到控制器的固件版本為1.1.3,且宏集MC-Prime是基于Pi控制平臺的,那么根據固件版本和CODESYS V3版本的對應選型表可知,該控制系所使用的開發環境為:CODESYS3.5.16.50。您可以通過CODESYS官網下載對應的安裝包。

(二)安裝CODESYS V3

如上圖所示,我們已經完成安裝包的下載,之后CODESYS V3的具體安裝步驟如下:

1.啟動安裝:

請注意需以管理員身份運行文件CODESYS.3.5.16.50,以啟動CODESYS V3的安裝。

2.自定義安裝位置:

點擊“Next”,接受相應的安裝要求,并再次點擊“Next”,跳轉到下圖界面,可自定義更改軟件安裝位置

3.選擇特性:

如果您不知道您需要什么特性,那么就對所有特性進行完整的安裝;反之,您可以取消選擇一些不必要的特性。

4.等待安裝完成:

點擊“Next”,等待安裝結束后,點擊完成即可。

二、創建程序

至此,我們已經完成CODESYS的安裝;本節將詳細介紹如何創建、編譯并運行第一個CODESYS V3項目。在此之前,需再次確認以下要求已被滿足:

  • 控制器的網絡設置必須正確配置,以便通過以太網訪問控制器。
  • 必須在開發人員的計算機上安裝與控制器固件版本相對應的CODESYS V3版本和 設備庫Target Package。

(一)快速創建第一個項目

確認無誤后,我們可以逐步創建一個CODESYS V3的示例項目,并加載到控制器上,執行的步驟如下:

1.新建項目:

點擊“新建項目”,選擇“標準項目”,自定義存儲路徑和項目名稱,注意選擇文件設備類型

2.連接項目中的控制器:

創建空項目后,必須將控制器集成到項目中;首先選擇您新創建的項目,然后用右鍵單擊打開上下文菜單,選擇菜單項“添加設備”

按下“添加設備”后,關閉窗口;在設備窗口中,會顯示一個“PLC 邏輯”類型的對象,下面包含一個“Application”類型的對象,和一個庫管理器。

(二)創建程序并定義任務

1.創建程序:

選擇您的應用程序對象,然后單擊右鍵以打開上下文菜單,選擇“添加對象”,然后在子菜單中選擇“POU...”

選擇POU的類型為“程序”,并給該程序起一個名稱。在本例中,名稱“main”用來表示這是控制器的主程序。所選擇的實現語言是ST(結構化文本)。

2.定義任務:

通過雙擊編輯模塊,在編輯器窗口的上半部分中定義我們的第一個變量,名稱為“counter”,數據類型為INT,并用值“0”初始化這個變量。就此我們實現了一個簡單的程序:每當您調用“main”對象時,該程序都會對變量“counter”實現+1。

3.選擇對象:

對于要調用的程序,必須插入一個具有“任務配置”類型的對象。此對象會自動創建一個類型為“MainTask”的子對象。您可以通過雙擊“MainTask”對象來配置它。選擇“添加調用”,然后選擇您已經創建的“程序”對象“Main”,點擊確定。

4.任務時間間隔:

默認情況下,任務時間間隔設置為25 ms,這意味著控制器將每25 ms調用并運行你的“程序”對象。對于幾個已定義的任務,當一個程序正在執行時,優先級高的任務優先于優先級低的任務,能中斷同一資源中優先級低的程序執行,使較低優先級的程序執行被放緩。

循環時間間隔設置注意事項:在 CODESYS V3 中,使用虹科控制器的最快循環時間是1 毫秒;基于 PI 的控制器可以將循環時間降至500 微秒

(三)登錄控制器并運行項目

要將應用程序加載到控制器上時,CODESYS V3不會自動知悉項目應該加載到哪一控制器上。這就要求用戶自行為CODESYS V3項目分配控制器。除了分配控制器外,還必須確認應用程序沒有錯誤。

1.掃描控制器:

在設備窗口中雙擊“Device”打開通信設置,顯示尚未分配設備。默認情況下,必須釋放位于中間的已添加的網關;右邊的符號是指定的控制器,此時仍然為空。

搜索網絡中已連接的控制器。

方法一:只需點擊“掃描網絡”按鈕。

方法二:若使用上述方法無法成功掃描,則直接用IP地址掃描,輸入控制器IP地址,并按Enter鍵,控制器就能被搜索出來。

2.檢查程序錯誤:

按下“編譯”菜單欄下的“編譯”項,或通過“F11”快捷鍵,構建程序并檢查代碼、可視化和設置中的錯誤。

經過短暫的等待后,結果將顯示在消息窗口中。如果您在創建此示例時沒有出錯,則應該顯示“0錯誤”和“0警告”;如果確實發生了錯誤,它將顯示在消息中,通過雙擊錯誤消息,CODESYS V3將自動跳轉到錯誤的位置,幫助您有效且輕松地修復錯誤。如果該項目已經完全沒有錯誤,并且已分配了一個控制器,那么您可以將該程序加載到該控制器上。

3.加載應用:

要登錄,請按菜單欄“在線->登錄到”或“登錄”按鈕,該按鈕位于菜單欄中的項目“窗口”和“幫助”下方。

如果到目前為止在控制器上沒有應用程序,則會出現如圖顯示的消息;如果一個應用程序已經加載到控制器上,則會出現一條消息,說明該控制器上有一個未知的應用程序。此消息可能會根據現有的應用程序是否正在運行而有所不同。

在所有情況下,請按下“是”來確認。但如果有消息顯示程序中仍然有錯誤,您需要取消登錄,首先找到程序中的錯誤并糾正它們。然后,再以CODESYS V3將應用程序加載到控制器上。

4.運行應用:

當“設備”和“應用程序”后出現綠色背景,并且在后面出現“[已連接]”或“[停止]”字樣時,加載過程就完成了。此時應用程序已完全加載到控制器上,但仍處于Idle狀態,尚未運行。要啟動程序,請點擊菜單欄中的“調試->啟動”或按“F5”鍵。

當設備窗口中的“應用程序”狀態從“[stop]”更改為“[運行]”時,將在控制器上執行該程序;此時,點開之前創建的程序“Main”,可以看到計數器“counter”中的值在累加

就此,我們完成了CODESYS的安裝并創建了一個應用程序。在下一則教程中,宏集將帶你創建可視化界面使用控制器的內部輸入和輸出

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/162318.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/162318.shtml
英文地址,請注明出處:http://en.pswp.cn/news/162318.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

調用飛漿情感評分模型

# 跑模型并保存 import paddlehub as hub # 加載模型 senta hub.Module(name"senta_lstm")# dataframe格式轉為list格式 text articles[標題內容].drop_duplicates().to_list() # 情感評分 results_data senta.sentiment_classify(data{text:text}) results_df p…

解決 requests 庫下載文件問題的技術解析

每次都以為自己即將戰勝bug,這是一場永無休止的游戲。在編程的世界中,bug就像狡猾的敵人,時隱時現,讓人防不勝防。 今天,我要分享的是如何解決requests庫下載文件問題的技術解析。這是一個讓我頭痛已久的bug&#xff0…

FastAPI通過SSE進行流式輸出

服務端推送 在服務器推送技術中,服務器在消息可用后立即主動向客戶端發送消息。其中,有兩種類型的服務器推送:SSE和 WebSocket。 SSE(Server-Send Events) SSE 是一種在基于瀏覽器的 Web 應用程序中僅從服務器向客戶…

【高級網絡程序設計】Week2-1 Sockets

一、The Basics 1. Sockets 定義An abstraction of a network interface應用 use the Socket API to create connections to remote computers send data(bytes) receive data(bytes) 2. Java network programming the java network libraryimport java.net.*;similar to…

pgsql常用命令總結

pgsql常用命令及相關總結 命令 命令登錄 psql -U postgres -h 127.0.0.1 -p 5432 -d vism查看所有數據庫:\l 進入某一數據庫:\c 數據庫名字 查看數據庫表:\dt 列出某一張表格的結構:\d 表名 查看某個表的所有數據:s…

學習筆記記錄

目錄 windows php一句話木馬 日志清理 DOS命令 查看用戶的SID 最高權限 常見的cmd命令 反彈shell PHPMYadmin mysql注入語句 wmic linux crontab創建隱藏后門 linux日志文件 knockd服務 ssh登錄 ssh隧道 本地轉發 遠程轉發 動態轉發 /proc: Centos 8 更…

CentOS 7 使用cJSON 庫

什么是JSON JSON是一種輕量級的數據交換格式,可讀性強、編寫簡單。鍵值對組合編寫規則,鍵名使用雙引號包裹,冒號:分隔符后面緊跟著數值,有兩種常用的數據類型是對象和數組。 對象:使用花括號{}包裹起來的…

【Rxjava詳解】(三)更好實踐異步請求

本文為更像demo的總結,在實際開發中,利用rxjava采取異步請求在一些簡單的單純請求數據上面,會顯得沒有必要,但rxjava提供的思路,在后期不論是增加功能,還是說整體代碼的工整度,都能感受到開發的…

補充:自動化測試高級應用之python多線程的使用-新方法

前段時間在網上學習多線程跑用例的時,發現一種更簡潔,優雅的使用多線程的方法,在此分享給大家。 閱讀本文前,請先閱讀前面寫的多線程跑用例的文章:【精選】第七章 第四節 自動化測試高級應用之python多線程的使用_add_test_img-CSDN博客 本文新的方法,對原有的run_al…

接口傳參數list的時候,items里面放個???????list

item里面放個list 先定義一個 list,循環add加入參數

java之switch case的用法

java之switch case的用法 Java中的switch語句是一種多路選擇結構,它允許一個變量在其值的多個可能選項之間進行選擇。這種結構可以替代一系列嵌套的if-else語句,使代碼更清晰和簡潔。 下面是switch語句的基本語法: switch (expression) { …

android keylayout鍵值適配

1、通過getevent打印查看當前keyevent數字對應事件和物理碼 2、dumpsys input 查看輸入事件對應的 KeyLayoutFile: /system/usr/keylayout/Vendor_6080_Product_8060.kl 3、通過物理碼修改鍵值映射,修改/system/usr/keylayout/目錄下的文件

CuratorFramework的blockUntilConnected方法

CuratorFramework是一個ZooKeeper客戶端庫,它提供了一些用于處理ZooKeeper連接和節點操作的高級API。其中,blockUntilConnected方法是一個阻塞方法,它會一直阻塞直到客戶端成功連接到ZooKeeper服務器。 具體來說,blockUntilConne…

(三)、基于 LangChain 實現大模型應用程序開發 | 模型鏈 Chains

😄 為什么我們需要Chains ? 鏈允許我們將多個組件組合在一起,以創建一個單一的、連貫的應用程序。鏈(Chains)通常將一個LLM(大語言模型)與提示結合在一起,使用這個構建塊&#xff0…

永久免費!N個excel表一鍵合并成一個表(excel表格合并技巧)

您是否還在用手工復制粘貼來將多個EXCEL或表的數據合并到一個表里?那就太麻煩,效率太低了,用金鳴表格文字識別的“表格合并”功能,可免費將N個excel文件或N個excel表一鍵合并到一個表里面,而且這個功能永久免費&#x…

【C++】特殊類設計 {不能被拷貝的類;只能在堆上創建的類;只能在棧上創建的類;不能被繼承的類;單例模式:懶漢模式,餓漢模式}

一、不能被拷貝的類 設計思路: 拷貝只會發生在兩個場景中:拷貝構造和賦值重載,因此想要讓一個類禁止拷貝,只需讓該類不能調用拷貝構造以及賦值重載即可。 C98方案: 將拷貝構造與賦值重載只聲明不定義,并…

FDG6306P PowerTrench? MOSFET P溝道 特點及其應用詳解

關于PowerTrench MOSFET? 它是一種MOS場效應晶體管,可以提高系統效率和功率密度。該技術采用了屏蔽柵極技術,可以減少開關損耗和導通損耗,從而提高了系統效率。此外,PowerTrench MOSFET還具有低導通電阻和高開關速度的…

三角洲雜志三角洲雜志社三角洲編輯部2023年第19期目錄

作家在線 李明聰 把寫作當成一種享受 李明聰; 2 頭條作品 冬天的童話 王排; 5-7 迎來春色換人間 王排; 8《三角洲》投稿:cnqikantg126.com 小說精選 鋼哥 曹茂炯; 9-25 重逢 莫艷陽; 26 散文現場 孩子,你相信光嗎? 趙…

前端js語音朗讀文本

<!DOCTYPE html> <html lang"zh"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>語音朗讀</title></head><body>&l…

如何滿足BMW EDI項目的PKT需求?

近期寶馬BMW&#xff08;以下簡稱BMW&#xff09;在其部分供應商之間試點推進PKT項目&#xff0c;BMW為什么要啟動 PKT 計劃呢&#xff1f; 業務系統全面升級統一全球所有寶馬工廠的流程 寶馬內部的物流供貨流程 近期BMW PKT需求主要針對其內部物流供貨流程展開&#xff1a; …