應用背景
自動化工程師在設備開發(fā)中,可能會碰到一些行業(yè)專用儀器儀表,并不支持常用規(guī)范接口,沒有現(xiàn)成的通訊驅動,這時就需要使用PLC或者其他網(wǎng)關的自由口通訊功能,今天也給大家介紹下McgsPro軟件下,自由口通訊如何快捷地實現(xiàn),上次因為大概講過使用本人自制驅動實現(xiàn)ascii字符串通訊,所以這次主要講一下hex數(shù)據(jù)類型的通訊。
劍指工控:快捷實現(xiàn)MCGS人機界面的ASCII自由通訊(文末有彩蛋)?zhuanlan.zhihu.com
軟件介紹
McgsPro為昆侖通態(tài)MCGS最新E/K/G系列HMI所使用的組態(tài)開發(fā)軟件,在自由口通訊這部分功能上,與原先的Mcgs嵌入版存在差異,增加了部分數(shù)據(jù)解析函數(shù),提升了數(shù)據(jù)解析便利性與功能性,如果您還在使用Mcgs嵌入版及其對應HMI,建議盡快升級到新系列產(chǎn)品。
操作步驟
1. 添加驅動:將串口收發(fā)數(shù)據(jù)驅動,放置到以下路徑后,即可在設備窗口添加調(diào)用D:McgsProProgramDrivers用戶定制設備串口數(shù)據(jù)收發(fā)
2. 關聯(lián)變量:設備窗口添加設備,按照所使用的的串口以及下位機串口參數(shù),設置串口父設備參數(shù),然后對應在串口收發(fā)數(shù)據(jù)設備內(nèi),添加一個我們后面要用到的字符型變量(可自由命名,本次設置為STRDATA)
串口收發(fā)數(shù)據(jù)設備的設備編輯窗口內(nèi),還有一些參數(shù)設置,僅應用于數(shù)據(jù)幀接收,如HMI只需發(fā)送指令,則無需設置;這里可以自由選擇接收數(shù)據(jù)幀的格式、起始字符、結束字符等,這些項需要按照具體通訊協(xié)議情況,對應設置。例如我本次連接的設備數(shù)據(jù)幀結尾固定為0x7D,即10進制的125,具體說明如下:
- 協(xié)議類型:指定收發(fā)幀的格式是16進制還是ASCII碼形式。
- 讀串口的結束方式:設置讀取數(shù)據(jù)時的結束方式,配合下面4個參數(shù)共同使用.詳細看一下備注
- 通訊等待時間:采集是收幀時的等待時間,超過等待時間后就返回。
- 讀串口停止字符:設置收幀時串口的停止字符,以ASCII編碼給出
- 讀串口停止長度:設置收幀時的停止長度,當收到設置的長度時就返回
- 讀串口起始字符:設置串口收幀時的起始字符
備注:0.給定結束字符:在指定的通訊等待時間內(nèi)收到結束字符則返回結束字符以前(包含結束字符)的字符串,否則全部返回
- 給定長度:在指定的通訊等待時間內(nèi)收到指定的長度后立即返回,否則全部返回(注:如果沒發(fā)幀,下次采集時會讀到當前幀的后半部字符串)
- 給定時間:讀取在整個通信等待時間內(nèi)收到的字符串
- 給定結束字符或給定長度:綜合0,1兩個條件,誰先滿足就執(zhí)行誰
- 給定起始字符和結束字符:在指定的通訊等待時間內(nèi),未收到起始字符則返回全部字符串,收到起始字符未收到結束字符,則返回起始字符以后(包含起始字符)的字符串,如果收到起始字符和結束字符,則返回起始字符和結束字符之間的字符串(包含起始字符和結束字符).
3. 發(fā)送命令幀:熟悉MCGS軟件的朋友應該都知道,軟件內(nèi)各種構件和策略可以自由編寫命令腳本,實現(xiàn)靈活的執(zhí)行效果,例如我們這次以最簡單的方式:寫在按鈕腳本。當用戶點擊該按鈕,就會執(zhí)行按鈕設置內(nèi)的腳本,發(fā)送你所設置的命令幀。當然,一些周期性采集用的命令幀,可以寫在我們的后臺策略或者循環(huán)策略,實現(xiàn)后臺周期性采集讀取數(shù)據(jù)的效果。
例如我們通過按鈕發(fā)送該停止測試的命令:
對應設置按鈕指令:
按鈕內(nèi)直接給我們前面關聯(lián)的字符型變量STRDATA賦值需要發(fā)送的指令即可,當用戶點擊該按鈕,McgsPro監(jiān)控就會到該變量的值有改變,立刻自動將變量內(nèi)的數(shù)據(jù)通過串口發(fā)出,監(jiān)控串口就能看到串口發(fā)出的數(shù)據(jù)幀,無需做其他任何操作;有時候為了第二次操作時,仍然可以正常發(fā)送,發(fā)送完之后我們需要把STRDATA的值清空,清空STRDATA的操作按照實際情況設置,不需要可以不寫。
4. 接收數(shù)據(jù)幀:簡單的操作命令發(fā)送按照第3點設置即可,但是串口通信更常用的是應答式的通訊方式,即:上位機發(fā)送命令,下位機響應回復相關結果。為了區(qū)分發(fā)出和收到的數(shù)據(jù),這時就要分開處理了,使用Write設備命令發(fā)送,然后接收數(shù)據(jù)幀。
串口數(shù)據(jù)收發(fā)設備工作原理是:執(zhí)行Write命令時,發(fā)出對應的指令,串口接收到數(shù)據(jù)時,自動放置到關聯(lián)變量STRDATA內(nèi)。這時候我們要做其實也是很簡單的,分三步:① 發(fā)送命令:使用設備命令,執(zhí)行Write指令發(fā)送需要的數(shù)據(jù)。② 通訊等待:等待下位機回復數(shù)據(jù),這時候可以參考前面提到的設備編輯窗口內(nèi),對應的參數(shù)設置,確保有足夠的時間接收完所有的響應數(shù)據(jù),這個時間主要跟下位機的響應速度以及數(shù)據(jù)的長度有關。③ 解析數(shù)據(jù):等待足夠時間后,接收到的數(shù)據(jù)幀就會完整更新在變量STRDATA內(nèi),然后我們按照通訊協(xié)議,從接收到的數(shù)據(jù)幀內(nèi),對應分析提取數(shù)據(jù)即可。
上圖就是一個簡單的命令收發(fā),然后我們按照前面提到的步驟,編寫指令:
如上圖所示,遵循應答式通訊的發(fā)送→等待→解析流程,對應編寫腳本即可;新建一個字符型變量WriteData來放置需要發(fā)送的命令字段,然后執(zhí)行Write指令發(fā)送,通訊等待過后,對應提取下位機回復數(shù)據(jù)的命令字,按照命令字所在的字符串位置及長度提取出來,轉換成十進制的數(shù)值,就可以用來顯示和判斷當前的接地方式。如果有需要還可以提取對應的校驗位,進行數(shù)據(jù)校驗,保證數(shù)據(jù)準確性。
McgsPro內(nèi)提供了大量字符串操作指令,可以靈活地實現(xiàn)各種進制數(shù)以及字符串的轉換、比較、提取等操作;并且加入了單精度浮點數(shù)解析函數(shù),直接調(diào)用即可,無需進行繁瑣運算,方便了用戶快速解析各種類型的數(shù)據(jù)。上圖用到的兩個字符串操作函數(shù)!!Hex2I()和!Mid()大家也可以到幫助里面查看具體用法,幫助位置如下圖所示:
使用McgsPro的過程中,也建議大家有空多打開幫助內(nèi)的腳本函數(shù)查看,相信能讓您發(fā)現(xiàn)很多意想不到的小功能!
功能總結
MCGS軟件內(nèi)置了豐富的腳本函數(shù)和靈活的腳本系統(tǒng),使用熟悉之后,可以很快捷的某些相對”復雜”的功能,但這也為軟件入門帶來了一些門檻,導致部分原先使用其他品牌人機界面的用戶,使用初期會有點摸不著頭腦,甚至覺得繁瑣,希望能引導大家認識McgsPro在這方面的優(yōu)勢,更好地發(fā)揮出MCGS產(chǎn)品的價值。
通訊驅動文件下載
像風一樣自由———MCGS自由口通訊(通訊驅動文件下載)?mp.weixin.qq.com
免責申明:本機構號所載文章為本號原創(chuàng)或根據(jù)網(wǎng)絡搜索編輯整理,文章版權歸原作者所有。因轉載眾多,無法找到真正來源,如標錯來源,或對于文中所使用的圖片,資料,下載鏈接中所包含的軟件,資料等,如有侵權,請跟我們聯(lián)系協(xié)商或刪除,謝謝!
本文為劍指工控原創(chuàng)技術類文章,2020年10月13日首次發(fā)表于《劍指工控》公眾號。
特別鳴謝本文作者
阮旭芬
廣州番禺 昆侖通態(tài) 莞福大區(qū)客戶經(jīng)理
本賬號為《劍指工控》官方知乎賬號。劍指工控由一群帶有工控情結的技術青年組織在一起,他們都是在工控一線的技術達人,如果你是工控一線的工程師,如果你在日常工控工作當中會遇到種種的技術問題,如果你熱愛工控技術和工控生活,歡迎加入我們,隨手提出你的技術問題會有技術達人第一時間為你解答??梢苑窒砟愕墓た叵才罚瑫行值軅兏惝a(chǎn)生共鳴??梢垣@得最新的工控資訊,指明技術和行業(yè)路線,做到未雨綢繆。
歡迎大家關注我們的公眾號劍指工控(JZGKCHINA),更多的了解我們。
Ps. 進入公眾號,“群&社區(qū)”菜單中有各個”技術交流學習群“的入口鏈接,獲取小編微信號,添加小編微信并備注“行業(yè)+微信名+城市”(格式不對能通過好友驗證,但一律不加群)
高校在校生請告知小編,進入“高校自動化專業(yè)交流群”~
高校自動化專業(yè)群,旨在專業(yè)課程學習,專業(yè)方向選擇,課程設計,畢業(yè)設計,就業(yè)方向,考研方向,高校杯自動化競賽等方面進行交流和經(jīng)驗分享~
期待你的加入~
|