台达PLC与VB通讯简易教程

上传人:f****u 文档编号:116185743 上传时间:2019-11-16 格式:PDF 页数:10 大小:241.37KB
返回 下载 相关 举报
台达PLC与VB通讯简易教程_第1页
第1页 / 共10页
台达PLC与VB通讯简易教程_第2页
第2页 / 共10页
台达PLC与VB通讯简易教程_第3页
第3页 / 共10页
台达PLC与VB通讯简易教程_第4页
第4页 / 共10页
台达PLC与VB通讯简易教程_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《台达PLC与VB通讯简易教程》由会员分享,可在线阅读,更多相关《台达PLC与VB通讯简易教程(10页珍藏版)》请在金锄头文库上搜索。

1、VB 實現電腦與台達 PLC 的通信 VB 實現電腦與台達 PLC 的通信 PLC 產品處 王乃全 摘要摘要:本文介紹 Visual Basic6 編程語言,MODBUS ASCII 通信協定及通過 VB 如何實現 與台達 DVP PLC 的通信 關鍵字關鍵字:Visual Basic MODBUS ASCII PLC 前言前言: 現代的世界是一個高自動化的世界,各式各樣的設備都可以和電腦線,而最簡單的 自動化線方式就是使用通信。 VB 提供通信控制項可以讓開發者開發通信的系統程式,功能上也提供 少為用戶著想的簡之處。 PLC 是現在控制域可缺少的部分,已經非常普及,如何簡的與 PLC 交互已

2、經成 為眾多廠商新的競爭戰場。由此產生人機界面、組態軟體等產品。這些產品的產生大大簡 化對 PLC 的控制,操作,使用方。但也有共同的缺點:價格過高和開發性較差。VB 作為“原始的編程語言在這方面無疑有著明顯的優勢。 本文結合一個簡單的案,用比較基礎的概為大家展示如何通過 VB 實現 PC-PLC 的 通信,對於初涉這個域的工程師,也會受益與本文提供的基本概。 一、通信基本概一、通信基本概 1、 通信的種:通信的種:通常通信的形式可以分為種,並通信(Parallel Communication)和 通信(Serial Communication) 。所謂並,既是一次傳輸為 8 位;而一次只傳

3、1 位元。這種同的通信模式如圖 平傳輸 1 2 3 4 5 6 7 8 设 备 8 7 6 5 4 3 2 1 设 备 1 2 3 4 5 6 7 8 并行设备 如打印机 并行设备 如打印机 傳輸 2、 通信通信 常用的通信也有種。分別位 RS-232 和 RS-485 2-1 RS-232 RS-232 的信號准位元乃是考地線而的,如圖,傳輸端考接地端 1 傳送資; 接收端則考接地端 2 還原出傳送端的信號準備。 傳送端 接收端 地電壓 接地端 1 接地端 2 由圖可知,由於個接地端准位一定一樣,而且很容受到干擾,所以信號在 RS-232 線傳輸時,很容產生錯誤。 2-2 RS-485 RS

4、-485 的信號傳輸方式如圖。 傳送端 接收端 地電壓 接地點 1 接地點 2 RS-485 的信號將被傳送出去時會分成正負條線,當到達接收端後,在將信號相減 還原成原的信號;如果將原始的信號表示成(DT) ,而被分成的信號分別標示成(D+) 及(D-) ,則 DT= (D+)-(D-) 同樣地,接收端在接收到信號後,也依據上式還原成原的樣子。如果線受到干擾,條 線的信號分別為(D+)+Noise (D-)+Noise。接收端還原信號為 (DT)= (D+)+Noise- (D-)+Noise 與先前結果一樣,所以 RS-485 可以有效的防止雜訊的干擾。 二、二、Visual Basic 基

5、本概基本概 1、 VB 是微軟的視窗軟體,提供很多介面成員。物件、屬性、事件、方法就是四個 重要的介面。 2、 VB 常用控制項。 2-1 標籤控制項 此控制項專用於顯示文字,位用,顯示如圖 2-2 按鈕控制項 此控制項使用很高,提供一個供系統用戶操作用的按鈕 2-3 計時器控制項 此控制項的最大作用在於固定的時間內會執所設置的程式碼一次。 VB 提供大的控制項,在此一一敍述。 三、三、MScomm 控制項控制項 要完成 VB 與 PLC 等設備的通信,MScomm 控制項是一個很好用的控制項。 所以在此有必要對 MScomm 控制項做一個較為詳細的明 1、 MScomm 非標準控制項,要手動

6、添加,步驟如下: 1-1 選擇功能表的【工程】 1-2 選擇【部件】 1-3 在彈出的對話方塊中做如圖選擇 1-4 在部件選項卡就會出現 MScomm 控制項 2、基本屬性 電腦通信口選擇 通信設置 PortOpen 通信口是否打開 Input 收到的字元 Output 發送的字元 四、四、MODBUS ASCII。 Modbus 分為ASCII和RTU種 , ASCII採用的格式和校驗相對簡單 , 本文採用ASCII 格式,並僅對使用的功能碼進明,多的資訊,請看協定的詳細明 1、通信格式、通信格式 STX 起始字元 “:(3AH) ADR 1 ADR 0 通信地址(站號)採用 2 個字元 C

7、MD 1 CMD 0 功能碼。採用 2 個字元 DATA(0) DATA(1) . DATA(n-1) 資項目 LRC CHK 1 LRC CHK 0 LRC 校驗碼。採用 2 個字元 END 1 END 0 結束字元。採用 2 個字元。 END 1 = CR(0DH) ,END 0 = LF(0AH) 2、 LRC 演算法演算法 ADR H+CMD H+DATA H,然後取 2 的補 3、功能碼、功能碼 05, 寫入線圈 01, 線圈態 格式格式 子(十進位)子(十進位) 字頭 3A 站號 01 功能碼 05 地址 05 00 寫入態 FF 00 LRC 碼 F6 06, 寫入單個字寄存器

8、格式格式 子子(十進位十進位) 字頭 3A 格式格式 例子例子 (十六进制十六进制) 字头 3A 站号 01 功能码 01 起始地址 06 14 读取数目 00 25 LRC 码 BF 站號 01 功能碼 06 寄存器位址 06 00 寫入的資 12 34 LRC 校驗碼 AD 五、五、VB 與與 PLC 通信的實現通信的實現 1、控制要求、控制要求 a、控制 PLC 的啟動、停止,並顯示運態(色為運,紅色為停止) b、能夠用交替型按鈕控制 Y0,Y1。並用指示燈顯示 Y0,Y1 態。 (色為運,紅色為 停止) c、能夠對 D256,D512 個寄存器進值寫入的操作 2、思:、思: a、PLC

9、 啟動停止的標誌位元為 M1072,查 DVP 協議,知道位址為 H0C30。按功能碼 01 操作 b、同樣 Y0,Y1 的地址分別為 H0500,H0501。寫入 FF00 為 ON,0000 為 OFF,按功能 碼 05 操作 c、D256,D512 位址分別為 H1100,H1200,按功能碼 06 操作即可 3、VB 介面的設計如圖介面的設計如圖 用按鈕控制 PLC 的啟動停止,Y0,Y1 的 ON/OFF 以及 D256,D512 寫完資的發送 用 Shape 元件做指示燈,表示 PLC 的運態和 Y 的態。 用 timer 元件停的取 M1072 的態,以判斷 PLC 的運情況 用

10、 MScomm 控制項實現 PC 與 PLC 的通信 4、代碼構成、代碼構成 1) 、) 、LRC 演算法校驗的實現演算法校驗的實現 Public Function LRC(str As String) As String c = 0 l = Len(str) For c = c + 1 To l c_data = Mid$(str, c, 2) d_lrc = d_lrc + Val(“&H“ + c_data) c = c + 1 Next c If d_lrc &HFF Then d_lrc = d_lrc Mod &H100 End If h_lrc = Hex(&HFF - d_lr

11、c + 1) If Len(h_lrc) 2 Then h_lrc = Mid(h_lrc, Len(h_lrc) - 1, 2) End If LRC = h_lrc End Function 2) 、運的一開始就判斷) 、運的一開始就判斷 PLC 的態,並設置標誌位元的態,並設置標誌位元 初次運打開口,並顯示 PLC 運態 Private Sub Form_Load() Dim s1 As String Dim s2 As String Dim s22 As String Dim s3 As String Dim s4 As String MSComm1.PortOpen = True s

12、2 = “01010C300001“ s22 = LRC(s2) s1 = “:“ + s2 + s22 + Chr$(13) + Chr$(10) MSComm1.Output = s1 s3 = MSComm1.Input s4 = Mid$(s, 6, 8) If s4 = “0C30FF00“ Then plc = 1 PLC 為運標誌 Else plc = 0 PLC 為停止標誌 End If End Sub 3) 、下面一段為用指示燈表示) 、下面一段為用指示燈表示 PLC 的運態的運態 Private Sub Timer5_Timer() Dim s1 As String Dim

13、 s2 As String Dim s22 Dim s3 As String Dim s4 As String s2 = “01010C300001“ s22 = LRC(s2) s1 = “:“ + s2 + s22 + Chr$(13) + Chr$(10) MSComm1.Output = s1 s3 = MSComm1.Input s4 = Mid$(s3, 8, 2) If s4 = “31“ Then plc = 1 PLC 為運標誌 Else: If s4 = “30“ Then plc = 0 PLC 為停止標誌 End If If plc = 1 Then Label2.Ca

14、ption = “PLC 正在運“ Shape1.FillColor = RGB(0, 255, 0) green Else Label2.Caption = “PLC 已經停止“ Shape1.FillColor = RGB(255, 0, 0) red End If End Sub 4) 、) 、PLC 的啟動與停止的啟動與停止 啟動 PLC Private Sub start_Click() Dim strout As String Timer5.Enabled = False str = “00050C30FF00“ M1072 為 PLC 啟動停止標誌位元。查地址表,M1072 為

15、OC30.FF00 為置 ON,0000 為置 OFF 以上都是固定格式,要記 LRCC = LRC(str) 計算 str 的 lrc 校驗碼 strout = “:“ + str + LRCC + Chr$(13) + Chr$(10) 欲傳送之資。13 為 D,10 為 A MSComm1.Output = strout Timer5.Enabled = True End Sub 停止 PLC Private Sub stop_Click() Dim strout As String Timer5.Enabled = False str = “00050C300000“ LRCC = LRC(str) strout = “:“ + str + LRCC + Chr$(13) + Chr$(10) MSComm1.Output = strout Timer5.Enabled = True End Sub Y0 , Y1 的 ON/OFF 與 PLC 啟動/停止的控制方式相同 , 指示燈的表示方式也相同 。 D256 , D512 資寫入的操作似,此處由於篇幅的關係,就把代碼全部出。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 其它办公文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号