亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

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

        2013-09-18 01:40:38遲新利曲延華高慶忠
        當(dāng)代化工 2013年7期
        關(guān)鍵詞:主程序子程序中斷

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

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

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

        如果可以自己編程實(shí)現(xiàn)PLC與上位機(jī)之間的通訊,必可起到節(jié)約成本提高效率的效果??墒侨粢耆勺约簛砭帉懸欢斡糜谕ㄐ诺某绦颍仨殞?duì)相關(guān)的網(wǎng)絡(luò)協(xié)議及其他的一些較底層的技術(shù)有很深入的了解,這不是一件容易的事。本文將介紹一種簡單的方法,借助于Visual Studio2010中的VC++開發(fā)工具,用戶只需通過設(shè)置serialPort組件的屬性并調(diào)用其方法,再在PLC內(nèi)部進(jìn)行簡單的編程,就可經(jīng)由自由口實(shí)現(xiàn)PC與PLC之間的通信。

        1 PLC編程

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

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

        主程序需要進(jìn)行諸如打開端口、設(shè)置波特率和奇偶校驗(yàn)等操作,并按照適當(dāng)?shù)臈l件執(zhí)行中斷或其他子程序。

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

        NETWORK1//主程序

        LD SM0.1//首個(gè)周期運(yùn)行標(biāo)志

        MOVB 16#05,SMB130//打開 COM1,無奇偶校驗(yàn),數(shù)據(jù)位8,波特率為19 200,自由口模式

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

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

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

        MOVB 30,SMB194//30為最大可接收字節(jié)數(shù),設(shè)定范圍為1~255

        MOVW +99,SMW192//設(shè)置通信信道空閑時(shí)間為99 ms

        ATCH INT_0,23//以接收完成為標(biāo)識(shí),觸發(fā)中斷0

        ATCH INT_2,9//以發(fā)送完成為標(biāo)識(shí),觸發(fā)中斷2

        ENI //用戶中斷允許

        RCV VB200 1//為COM1指定從VB200開始的緩沖區(qū)

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

        LDB=SMB186 16#20//接收完成狀態(tài)標(biāo)識(shí)

        MOVB 10 SMB34//設(shè)置定時(shí)中斷0的時(shí)間間隔為10 ms

        ATCH INT_1 10//定時(shí)中斷0超時(shí),觸發(fā)中斷1

        CRETI//返回

        NOT

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

        NETWORK1//中斷1

        LD SM0.0//運(yùn)行標(biāo)識(shí)

        DTCH 10//解除定時(shí)中斷

        XMT VB200 1//向COM1的緩沖區(qū)返回信息

        完整的程序運(yùn)行流程如圖1所示。

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

        2 PC編程

        PC機(jī)側(cè)程序采用微軟公司的Visual C++工具開發(fā)。在以往的實(shí)踐中,大家或利用標(biāo)準(zhǔn)通信函數(shù)、或利用第三方控件 MSComm、或利用 API函數(shù)[3]來實(shí)現(xiàn)串行通信

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

        表1 SerialPort屬性Table 1 Attribute of SerialPort

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

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

        serialPort1.BaudRate=9600;//設(shè)置波特率為9600bps

        serialPort1.DataBits=8;//設(shè)置8位數(shù)據(jù)位

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

        serialPort1.Parity=System.IO.Ports.Parity.None;//無奇偶校驗(yàn)

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

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

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

        4 結(jié)束語

        隨著 PLC在工業(yè)現(xiàn)場的大量普及和應(yīng)用,對(duì)PLC的監(jiān)控和管理顯得日益重要。本文在PLC與PC的自由口通訊中,采用了VC++內(nèi)置的serialPort組件,不但大大簡化了編程,而且取得了不錯(cuò)的效果。在此基礎(chǔ)上,配合PC與PLC 的通信協(xié)議,就可以開發(fā)出交互界面友好、功能強(qiáng)大的上位機(jī)監(jiān)控系統(tǒng),以較低的成本,滿足眾多中小企業(yè)自動(dòng)化、信息化、網(wǎng)絡(luò)化的要求。

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

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

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

        猜你喜歡
        主程序子程序中斷
        淺談數(shù)控銑削技術(shù)代碼程序的嵌套方式研究
        電控冰箱軟件模塊化設(shè)計(jì)
        日用電器(2019年12期)2019-02-26 01:53:06
        跟蹤導(dǎo)練(二)(5)
        千里移防,衛(wèi)勤保障不中斷
        解放軍健康(2017年5期)2017-08-01 06:27:44
        時(shí)光倒流 換回PotPlayer老圖標(biāo)
        淺談子程序在數(shù)控車編程中的應(yīng)用
        子程序在數(shù)控車加工槽中的應(yīng)用探索
        西門子840D系統(tǒng)JOG模式下PLC調(diào)用并執(zhí)行NC程序
        AT89C51與中斷有關(guān)的寄存器功能表解
        FPGA內(nèi)嵌PowerPC的中斷響應(yīng)分析
        大陆极品少妇内射aaaaa| 蜜桃噜噜一区二区三区| 深夜黄色刺激影片在线免费观看| 白白在线视频免费观看嘛| 又粗又大又硬毛片免费看| av潮喷大喷水系列无码| 免费 无码 国产在线观看不卡| 好看午夜一鲁一鲁一鲁| 精品黄色国产一区二区| 久久天堂一区二区三区av| 精品视频无码一区二区三区| 午夜不卡久久精品无码免费 | 人妻丰满熟妇AV无码片| 亚洲精品国产av一区二区| 亚洲国产国语对白在线观看| 中文字幕无码成人片| 最近中文字幕完整版免费 | 成 人 免 费 黄 色| 久久久久久免费毛片精品| 日本高清不在线一区二区色| 国产精品女同二区五区九区| 国产精品久久久三级18| 熟妇人妻久久中文字幕| 久久久久久久无码高潮| 久久亚洲精品成人AV无码网址| 91久久精品一区二区三区大全| 国产情侣一区二区| 亚洲国产另类精品| 国产亚洲精品日韩综合网| 一本色道久久综合亚州精品| 久久精品亚州中文字幕| 久久久久成人精品无码| 真人男女做爰无遮挡免费视频| 久久午夜伦鲁鲁片免费| 男性av天堂一区二区| 99久久精品国产一区二区| 色狠狠一区二区三区香蕉| 国产精品无码久久AⅤ人妖| 国产91精品一区二区麻豆亚洲| 国产熟妇疯狂4p交在线播放| 精品亚洲欧美无人区乱码|