在iFIX中如何通過VBA編程實現(xiàn)RS485通訊?
最近有個網(wǎng)友遇到一個問題,現(xiàn)場有塊儀表,采購的時候沒有注意通訊協(xié)議。買到后發(fā)現(xiàn)儀表只支持RS485自由口協(xié)議。這樣就不能用現(xiàn)有的Mb1驅(qū)動直接讀數(shù)。需要自己開發(fā)程序。本文介紹了基于MScomm控件的串口通訊。
我們首先在iFIX后臺添加一個窗體。選擇窗體后。在菜單欄里找到“工具”。選擇附加控件,向下滑動找到“Microsoft Communications Control version V6.0 SP”勾選上以后點擊確定。然后你會發(fā)現(xiàn)工具箱多了一個電話一樣的控件。將控件拖到窗體。
這時候發(fā)發(fā)現(xiàn)報錯了。錯誤信息“對于指定的操作,該使用者不受信任”。出現(xiàn)這個問題的原因是windows的更新補丁限制了一些activex控件的使用。網(wǎng)上有很多解決辦法。我這里操作的辦法是:
第一:下載安裝VB6.0企業(yè)版軟件;
第二:安裝VB6的SP6補丁,這個補丁可以獨立下載安裝?;蛘呦螺dVB6.0的時候注意下載Visual Basic 6.0 SP6集成安裝簡體中文企業(yè)版。這個里面有SP6的補丁。直接安裝就可以了。
第三:安裝一個針對vb控件的更新包(Microsoft Visual Basic 6.0 Service Pack 6 Cumulative Update)。
以上三步完成后,再去拖拽MScomm控件,便可以使用了。
下面就可以編寫通訊程序了。首先我們先查看儀表的通訊協(xié)議。我們看下發(fā)送的串行命令碼包含哪些內(nèi)容。我們這里以基恩士LS-7070激光測距傳感器為例。
首先看通訊手冊,設(shè)置串口參數(shù),波特率:9600;數(shù)據(jù)長度:8;停止位:1;奇偶校驗:無校驗;如果讀取儀表的測量值,需要發(fā)送的命令為“M q,r cr”。轉(zhuǎn)換為16進制的話為:4D 71 2C 0D
編輯窗體的程序,如下:
這樣便可以試著跟設(shè)備通訊了。當(dāng)然這種方式僅僅是簡單的實現(xiàn)通訊。如果想要持續(xù)、穩(wěn)定的和設(shè)備保持長時間的通訊,還需要對上面的程序作出很多修改。
提交
新大陸自動識別精彩亮相2024華南國際工業(yè)博覽會
派拓網(wǎng)絡(luò)被Forrester評為XDR領(lǐng)域領(lǐng)導(dǎo)者
智能工控,存儲強基 | 海康威視帶來精彩主題演講
展會|Lubeworks路博流體供料系統(tǒng)精彩亮相AMTS展會
中國聯(lián)通首個量子通信產(chǎn)品“量子密信”亮相!