999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

基于VC++的PC與PLC自由口通訊

2013-09-18 01:40:38遲新利曲延華高慶忠
當代化工 2013年7期
關鍵詞:設置

林 盛,遲新利,曲延華,高慶忠

(沈陽工程學院, 遼寧 沈陽 110136)

作為新一代工業控制裝置,PLC自上世紀 60年代產生以來,發展迅猛,被廣泛應用于眾多的工業控制現場。S7-200系列的PLC是西門子公司的小型PLC,從其推向市場的那天起,就以高可靠性和性價比在國內廣受歡迎。在工業控制現場,往往需要上位機(PC)對下位機(PLC)進行監控,以實現控制的分散和管理的集中。但上位機的專用組態軟件,往往價格昂貴,并且控制不夠靈活。

如果可以自己編程實現PLC與上位機之間的通訊,必可起到節約成本提高效率的效果。可是若要完全由自己來編寫一段用于通信的程序,必須對相關的網絡協議及其他的一些較底層的技術有很深入的了解,這不是一件容易的事。本文將介紹一種簡單的方法,借助于Visual Studio2010中的VC++開發工具,用戶只需通過設置serialPort組件的屬性并調用其方法,再在PLC內部進行簡單的編程,就可經由自由口實現PC與PLC之間的通信。

1 PLC編程

S7-200的自由口通信模式建立在RS-485硬件基礎上。如果PLC選擇了自由口模式,用戶就可以通過發送指令(XMT)、接收指令(RCV)、發送中斷以及接收中斷對通信口進行相應的操作。S7-200 PLC也允許用戶對諸如數據長度、奇偶校驗等進行簡單設置設置[1]。對于XMT和RCV 指令,用戶可以在編程當中為其指定相應的數據緩沖區。

最終的 PLC 程序應當由主程序、中斷(接收完成/發送完成)子程序、讀(寫)操作子程序和校驗子程序等組成,各個程序塊各司其職。

主程序需要進行諸如打開端口、設置波特率和奇偶校驗等操作,并按照適當的條件執行中斷或其他子程序。

主程序與子程序部分示例代碼如下:

NETWORK1//主程序

LD SM0.1//首個周期運行標志

MOVB 16#05,SMB130//打開 COM1,無奇偶校驗,數據位8,波特率為19 200,自由口模式

MOVB 16#EC,SMB187//接收使能,以SM188和SM189內字符分別作為開始和停止字符,

MOVB 35,SMB188//以“#”做為開始字符

MOVB 38,SMB189//以“&”做為停止字符

MOVB 30,SMB194//30為最大可接收字節數,設定范圍為1~255

MOVW +99,SMW192//設置通信信道空閑時間為99 ms

ATCH INT_0,23//以接收完成為標識,觸發中斷0

ATCH INT_2,9//以發送完成為標識,觸發中斷2

ENI //用戶中斷允許

RCV VB200 1//為COM1指定從VB200開始的緩沖區

NETWORK1//中斷0,接收完成中斷子程序

LDB=SMB186 16#20//接收完成狀態標識

MOVB 10 SMB34//設置定時中斷0的時間間隔為10 ms

ATCH INT_1 10//定時中斷0超時,觸發中斷1

CRETI//返回

NOT

RCV VB200 1//上次接收完成,開始新的接收

NETWORK1//中斷1

LD SM0.0//運行標識

DTCH 10//解除定時中斷

XMT VB200 1//向COM1的緩沖區返回信息

完整的程序運行流程如圖1所示。

圖1 PLC程序流程圖Fig.1 Program Flow Chart for PLC

2 PC編程

PC機側程序采用微軟公司的Visual C++工具開發。在以往的實踐中,大家或利用標準通信函數、或利用第三方控件 MSComm、或利用 API函數[3]來實現串行通信

微軟從 VisualStudio2005開發工具開始,在NETFramework類庫包含了SerialPort組件,利用此組件,可以方便地實現串口通訊的多種功能[2]。SerialPort組件的常用屬性極其描述如表1所示。

表1 SerialPort屬性Table 1 Attribute of SerialPort

serialPort組件的串口屬性要設置成與PLC串口參數相同的數值,其代碼如下:

serialPort1.PortName=“COM1”;//設置通訊端口為COM1

serialPort1.BaudRate=9600;//設置波特率為9600bps

serialPort1.DataBits=8;//設置8位數據位

serialPort1.StopBits=System.IO.Ports.StopBits.One;//設置1位停止位

serialPort1.Parity=System.IO.Ports.Parity.None;//無奇偶校驗

serialPort組件打開關閉串口采用的是調用類的Open()和 Close()方法。其讀取數據的方法是多為同步阻塞調用,因此可以使用異步處理或線程間處理調用這些讀取數據的方法,從而盡量避免在主線程中調用,由此可以顯著提高系統的工作性能。

最終完成的通訊界面如圖2所示,在這個通信界面上可以根據實際需要,自由設置串口的各個參數。在完成通信參數、命令類型和寄存器參數的設置后,便可發送指令數據。命令類型中05代表“讀”,06代表“寫”。

圖2 PC程序界面Fig. 2 Program Interface of PC

4 結束語

隨著 PLC在工業現場的大量普及和應用,對PLC的監控和管理顯得日益重要。本文在PLC與PC的自由口通訊中,采用了VC++內置的serialPort組件,不但大大簡化了編程,而且取得了不錯的效果。在此基礎上,配合PC與PLC 的通信協議,就可以開發出交互界面友好、功能強大的上位機監控系統,以較低的成本,滿足眾多中小企業自動化、信息化、網絡化的要求。

[1] 西門子(中國)有限公司. SIMATIC S7-200 可編程控制器系統手冊[G]. 2008.

[2] Ivor Horton,Visual C++2010入門經典 [M]. 第5版.北京:清華大學出版社,2010.

[3] 高潮,羅強,郭永彩,扶新.用Visual C++實現PC與PLC之間的串行通訊[J].重慶大學學報(自然科學版),2006,29(6):19-22.

猜你喜歡
設置
中隊崗位該如何設置
少先隊活動(2021年4期)2021-07-23 01:46:22
船舶防火結構及設置的缺陷與整改
水上消防(2020年5期)2020-12-14 07:16:18
中外醫學專業與專科設置對比分析及啟示
特殊場景下列控等級轉換的設置方案
7招教你手動設置參數
動車段(所)股道有效長設置研究
我國中小學將設置人工智能相關課程
玩具世界(2017年9期)2017-11-24 05:17:29
吃紙的妖怪
本刊欄目設置說明
中俄臨床醫學專業課程設置的比較與思考
主站蜘蛛池模板: 波多野结衣第一页| 欧美日韩午夜视频在线观看 | 91久久夜色精品| 精品一區二區久久久久久久網站| 日韩AV手机在线观看蜜芽| 日韩精品无码免费一区二区三区 | 99视频全部免费| 毛片久久久| 欧美精品亚洲日韩a| 亚洲人视频在线观看| 任我操在线视频| 无码AV高清毛片中国一级毛片| 久久天天躁夜夜躁狠狠| 国产无人区一区二区三区| 亚洲第七页| 久久国产热| 亚洲国产欧美中日韩成人综合视频| 麻豆精品国产自产在线| 色偷偷综合网| 久草视频精品| 午夜精品一区二区蜜桃| 国产午夜一级毛片| 超级碰免费视频91| 亚洲成人精品久久| 日韩福利在线观看| 国产在线八区| 免费国产黄线在线观看| 中国国产A一级毛片| 欧美在线一二区| 黄色污网站在线观看| 91久久夜色精品国产网站| 特级精品毛片免费观看| 久久免费成人| 国产SUV精品一区二区6| 四虎成人在线视频| 国产欧美高清| 视频二区国产精品职场同事| 色AV色 综合网站| 亚洲中文无码h在线观看| 国产精品久线在线观看| 亚洲成人播放| 精品无码一区二区三区电影| 欧美激情二区三区| 99视频国产精品| a级毛片网| 国产美女91呻吟求| 免费xxxxx在线观看网站| 真人免费一级毛片一区二区| 亚洲天堂网在线观看视频| 国产成+人+综合+亚洲欧美 | 成人精品免费视频| 丰满人妻久久中文字幕| Aⅴ无码专区在线观看| 欧美狠狠干| 日韩a级片视频| a毛片在线播放| 欧美日韩一区二区三区四区在线观看 | 国产jizzjizz视频| 国产精品高清国产三级囯产AV| 欧美色视频在线| 久久国产精品娇妻素人| 日本少妇又色又爽又高潮| 无码日韩人妻精品久久蜜桃| 国产亚洲精久久久久久久91| 免费观看精品视频999| 伊人婷婷色香五月综合缴缴情| 她的性爱视频| 波多野结衣AV无码久久一区| 亚洲一区毛片| 精品国产香蕉伊思人在线| 亚洲第一成网站| 精品超清无码视频在线观看| 亚洲国产成人麻豆精品| 成人欧美在线观看| 亚洲国产日韩一区| 高清不卡一区二区三区香蕉| 中文字幕日韩视频欧美一区| 国产美女主播一级成人毛片| 91美女在线| 国内a级毛片| 99视频在线免费| 中文国产成人精品久久|