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
中外醫學專業與??圃O置對比分析及啟示
特殊場景下列控等級轉換的設置方案
7招教你手動設置參數
動車段(所)股道有效長設置研究
我國中小學將設置人工智能相關課程
玩具世界(2017年9期)2017-11-24 05:17:29
吃紙的妖怪
本刊欄目設置說明
中俄臨床醫學專業課程設置的比較與思考
主站蜘蛛池模板: AV无码一区二区三区四区| 人人看人人鲁狠狠高清| 国产精品太粉嫩高中在线观看| 1769国产精品视频免费观看| 久久无码av三级| 免费A∨中文乱码专区| 成年看免费观看视频拍拍| 国产肉感大码AV无码| 人妖无码第一页| 国产精品尤物铁牛tv | 久久熟女AV| 最新加勒比隔壁人妻| 999精品色在线观看| 在线观看精品国产入口| 找国产毛片看| 五月婷婷精品| 欧美h在线观看| 国产毛片高清一级国语 | 欧美一区福利| 色综合天天娱乐综合网| 国产成人精品一区二区不卡| 国产白丝av| 国产丰满大乳无码免费播放 | 伊人色综合久久天天| 国产欧美日韩视频怡春院| 国产免费黄| 福利小视频在线播放| 国产精品原创不卡在线| 伊人久久久久久久| 日本一区二区不卡视频| 婷婷亚洲最大| 亚洲无码电影| 91精品国产综合久久香蕉922| 亚洲综合香蕉| 国产亚洲日韩av在线| 欧美午夜在线观看| 久久综合丝袜长腿丝袜| 青草精品视频| 无码内射在线| 亚洲永久免费网站| 国产久操视频| 成人av手机在线观看| 成人噜噜噜视频在线观看| 国产女人在线观看| 在线看片中文字幕| 91福利片| 色AV色 综合网站| 久久国产精品影院| 中美日韩在线网免费毛片视频 | 国产精品一区二区不卡的视频| 亚洲精品男人天堂| 国产麻豆aⅴ精品无码| 国产无套粉嫩白浆| 国产精品视频白浆免费视频| 日韩成人高清无码| 中文字幕亚洲另类天堂| 日韩大乳视频中文字幕| 欧美亚洲一区二区三区在线| 精品国产三级在线观看| 在线国产综合一区二区三区 | 日韩少妇激情一区二区| A级毛片无码久久精品免费| 亚洲国产成人精品青青草原| 亚洲成A人V欧美综合| 国产精品所毛片视频| 永久免费无码日韩视频| 色欲综合久久中文字幕网| 国产真实二区一区在线亚洲| 在线观看免费黄色网址| 一级黄色网站在线免费看| 中文字幕日韩久久综合影院| 丁香五月亚洲综合在线| 99热最新在线| 国产美女无遮挡免费视频网站 | 国产丝袜一区二区三区视频免下载| 特级aaaaaaaaa毛片免费视频| 久久久国产精品无码专区| 久久不卡国产精品无码| 国产欧美日韩在线一区| 国产日韩欧美精品区性色| 99一级毛片| 亚洲欧美日韩动漫|