jzylcj
級別: 略有小成
![]() |
引言 在工業(yè)生產(chǎn)中,人們常常面臨著(zhù)數據采集與管理。作為工廠(chǎng)自動(dòng)化的三大支柱可編程控制器PLC(Programmable Logic Controller),由于其安全可靠,廣泛的用于數據采集與控制。生產(chǎn)過(guò)程中,要監視PLC內部的數據與運行狀況,選用市場(chǎng)上的人機界面或組態(tài)軟件,雖然功能豐富,但大都價(jià)格昂貴,在一些中小規模的生產(chǎn)場(chǎng)合,人們希望能自己用高級語(yǔ)言開(kāi)發(fā)一個(gè)簡(jiǎn)易實(shí)用的通信程序。使用Visual Basic 6.0,開(kāi)發(fā)串行通信程序時(shí),有兩種方法,一種是用Windows API函數,另一種是用VB支持的通信控件MSCOMM。以下介紹使用通信控件方式實(shí)現通訊 1.硬件 采用SC-09編程電纜,連接PC串口與PLC編程口實(shí)現通訊。 2.PLC編程口的通信協(xié)議簡(jiǎn)介 通信格式: 波特率9600,偶校驗,8位數據位,一位停止位。 具體請參考有關(guān)資料,以下舉例說(shuō)明其通訊格式 PLC資料網(wǎng) http://www.plcclub.com 1)、DEVICE READ(讀出軟設備狀態(tài)值) 計算機向PLC發(fā)送: 3.具體程序說(shuō)明 MSComm控件簡(jiǎn)介用來(lái)提供簡(jiǎn)單的串行端口通信功能,也可以用來(lái)創(chuàng )建功能完備、事件驅動(dòng)的高級通信工具。Mscomm控件提供了一系列標準通信命令的使用界面。使用它可以建立與串行端口的連接,通過(guò)串行端口再連接到其它設備(如調制解調器、PLC),發(fā)出命令,交換數據,以及監視和響應串行連接中發(fā)生的事件和錯誤。 數據讀與寫(xiě)采用函數input和output (1)窗口加載程序 Private Sub Form_Load() MSComm1.CommPort = 1 ‘選擇COM1口 MSComm1.Settings = "9600,e,7,1" If mscomm1.portopen=false then mscomm1.portopen=true End Sub (2)數據讀取子程序: Public Function GetData(ByVal StartAddress As String, ByVal GetBytes As Integer, ByVal Hex_Bytes As String) As String MSComm1.InputLen = GetBytes * 2 + 4 MSComm1.Output = STX + CMD_Read + StartAddress + Hex_Bytes + ETX + GetSumChk(CMD_Read + StartAddress + Hex_Bytes + ETX) ‘傳送數據組成:起始符+命令+首地址+數據位+結束符+和檢驗碼 GetData = MSComm1.Input MSComm1.InBufferCount = 0 MSComm1.InputLen = 0 End Function ) |
---|---|
|