本文介紹了通過引進ActiveX控件MSComm,利用C#語言編程,實現(xiàn)上位機與松下FPG-C24R2 PLC的通信,并給出了工程實例。該方法簡單可靠、便于移植、實用性強,在工業(yè)控制中有著廣泛的用途。
關(guān)鍵詞:C# 串口通信 實時監(jiān)控 ActiveX 控件
一、前言
C#語言是.net技術(shù)的核心開發(fā)語言,是一種簡單、現(xiàn)代、面向?qū)ο蠛皖愋桶踩木幊陶Z言,它實現(xiàn)了快速應(yīng)用程序開發(fā)、跨平臺部署,能夠訪問平臺固有的資源,支持COM和.net技術(shù),具有C++語言的強大功能、Java語言的跨平臺特性和Delphi語言的方便快捷等眾多的優(yōu)秀品質(zhì)。FP∑是日本松下電工株式會社生產(chǎn)的小型可編程序控制器,它有許多規(guī)格,具有體積小、重量輕、功能齊全、編程簡單、價格便宜等優(yōu)點,在工業(yè)控制中應(yīng)用十分廣泛。 本文在Windows xp下用Visual Studio .NET 2003編制一個簡單的通信程序,探討使用MSComm控件對FPG-C24R2 PLC進行串行通信的實現(xiàn)方法。
二、ActiveX控件的引入
你必須有Mscomm.srg, Mscomm32.ocx,Mscomm32.dep文件在你的Windows的System目錄下(注意WinNT下是System32),而且它必須正確的注冊。你可以裝VB6.0來獲得,安裝VB.6.0后,MSComm控件就自動在你的計算機上注冊了,這比手工注冊控件省事多了,Visual.Studio.NET2003在項目工程中(Solution)插入MSComm控件的具體步驟:新建程序后,點擊Tools(工具)-->Add/Remove Toolbox items(添加/移除工具箱項)就打開了Customize Toolbox(自定義工具箱)對話框,再選擇COM Components(COM組件)項,并在出現(xiàn)控件中就可以找到Microsoft Communications Control,version 6.0,選上該項,再點擊"OK",就會在Toolbox控件工具箱中看到MSComm控件的電話圖標了,將它拖到窗體(Form)就可以了。
三、通信協(xié)議
FP∑系列PLC通信系統(tǒng)的基本協(xié)議是松下電工的專用通信協(xié)議-MEWTOCOL;PLC與計算機的通信協(xié)議是MEWTOCOL-COM。該協(xié)議采用異步通信方式,其波特率有300bps、600bps、1200bps、2400bps、4800bps、9600bps、19200bps、38400bps、57600bps、115200bps等多種可選,且報文長度可變可固定。該方式通信協(xié)議如下:為上位機發(fā)送的上位機鏈接命令幀讀DM區(qū)數(shù)據(jù)的命令格式和由PLC返回的應(yīng)答幀格式。當PLC接收到從上位機發(fā)來的ASCII碼命令時自動返回ASCII碼應(yīng)答。
其中,%為起始符,標記每一幀報文的開始,CR為結(jié)束符,標記每一幀報文的結(jié)束,BCC為兩字節(jié)的幀校驗碼FCS,它是從開始符"%"到正文結(jié)束的所有字符的ASCII碼按位異或的結(jié)果,HL為PLC的站地址,為兩位16進制數(shù),如00則表示第一臺PLC。#、$標注該幀報文為何種類型,上位機的命令幀由不固定的字節(jié)數(shù)組成,針對不同的識別碼有不同的幀長度。但基本格式大體一致。
關(guān)鍵詞:C# 串口通信 實時監(jiān)控 ActiveX 控件
一、前言
C#語言是.net技術(shù)的核心開發(fā)語言,是一種簡單、現(xiàn)代、面向?qū)ο蠛皖愋桶踩木幊陶Z言,它實現(xiàn)了快速應(yīng)用程序開發(fā)、跨平臺部署,能夠訪問平臺固有的資源,支持COM和.net技術(shù),具有C++語言的強大功能、Java語言的跨平臺特性和Delphi語言的方便快捷等眾多的優(yōu)秀品質(zhì)。FP∑是日本松下電工株式會社生產(chǎn)的小型可編程序控制器,它有許多規(guī)格,具有體積小、重量輕、功能齊全、編程簡單、價格便宜等優(yōu)點,在工業(yè)控制中應(yīng)用十分廣泛。 本文在Windows xp下用Visual Studio .NET 2003編制一個簡單的通信程序,探討使用MSComm控件對FPG-C24R2 PLC進行串行通信的實現(xiàn)方法。
二、ActiveX控件的引入
你必須有Mscomm.srg, Mscomm32.ocx,Mscomm32.dep文件在你的Windows的System目錄下(注意WinNT下是System32),而且它必須正確的注冊。你可以裝VB6.0來獲得,安裝VB.6.0后,MSComm控件就自動在你的計算機上注冊了,這比手工注冊控件省事多了,Visual.Studio.NET2003在項目工程中(Solution)插入MSComm控件的具體步驟:新建程序后,點擊Tools(工具)-->Add/Remove Toolbox items(添加/移除工具箱項)就打開了Customize Toolbox(自定義工具箱)對話框,再選擇COM Components(COM組件)項,并在出現(xiàn)控件中就可以找到Microsoft Communications Control,version 6.0,選上該項,再點擊"OK",就會在Toolbox控件工具箱中看到MSComm控件的電話圖標了,將它拖到窗體(Form)就可以了。
三、通信協(xié)議
FP∑系列PLC通信系統(tǒng)的基本協(xié)議是松下電工的專用通信協(xié)議-MEWTOCOL;PLC與計算機的通信協(xié)議是MEWTOCOL-COM。該協(xié)議采用異步通信方式,其波特率有300bps、600bps、1200bps、2400bps、4800bps、9600bps、19200bps、38400bps、57600bps、115200bps等多種可選,且報文長度可變可固定。該方式通信協(xié)議如下:為上位機發(fā)送的上位機鏈接命令幀讀DM區(qū)數(shù)據(jù)的命令格式和由PLC返回的應(yīng)答幀格式。當PLC接收到從上位機發(fā)來的ASCII碼命令時自動返回ASCII碼應(yīng)答。
其中,%為起始符,標記每一幀報文的開始,CR為結(jié)束符,標記每一幀報文的結(jié)束,BCC為兩字節(jié)的幀校驗碼FCS,它是從開始符"%"到正文結(jié)束的所有字符的ASCII碼按位異或的結(jié)果,HL為PLC的站地址,為兩位16進制數(shù),如00則表示第一臺PLC。#、$標注該幀報文為何種類型,上位機的命令幀由不固定的字節(jié)數(shù)組成,針對不同的識別碼有不同的幀長度。但基本格式大體一致。