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

        ?

        基于Prodave的西門子PLC與PC以太網(wǎng)通信研究

        2017-11-01 05:19:34祝廣場余小敏
        化工自動化及儀表 2017年4期
        關(guān)鍵詞:西門子調(diào)用以太網(wǎng)

        祝廣場 余小敏

        (華電電力科學(xué)研究院中南分院)

        基于Prodave的西門子PLC與PC以太網(wǎng)通信研究

        祝廣場 余小敏

        (華電電力科學(xué)研究院中南分院)

        提出了基于Prodave工具包的西門子PLC與PC的通信方法,該方法不需要在PLC側(cè)進(jìn)行編程,只需要在PC側(cè)采用高級語言調(diào)用若干函數(shù)即可,成本較低且通信可靠。

        以太網(wǎng)通信 西門子PLC Prodave

        S7-300 PLC擁有高性能的處理器、豐富的IO和通信模塊,在工業(yè)控制中應(yīng)用廣泛,但它的人機(jī)接口功能較弱。如果將PLC與PC通過通信連接起來,用PC作為上位機(jī),通過對PLC的數(shù)據(jù)存儲器中各區(qū)域進(jìn)行讀取與寫入,實(shí)現(xiàn)系統(tǒng)的監(jiān)控、人機(jī)接口通信等功能,就能夠組成功能強(qiáng)、可靠性高、成本低的控制系統(tǒng)[1]。

        目前,由于西門子公司沒有公開通信協(xié)議,上位機(jī)程序設(shè)計(jì)主要有兩種方式:采用專門的組態(tài)軟件(如WinCC、組態(tài)王等)開發(fā)或是通過編程語言自行開發(fā)。第1種方法操作簡單、效率高,對開發(fā)人員的要求相對較低,但成本較高;第2種方法相對復(fù)雜,要求開發(fā)者具有較高的編程水平,開發(fā)周期長,但與第1種方法相比具有靈活、成本低的優(yōu)點(diǎn)[2]。

        Prodave(Proces Data Traffic)是西門子公司開發(fā)的S7系列PLC和PC通信的工具包,它為PLC和PC通信提供了一種橋梁,既避免了組態(tài)軟件的高昂成本,又不要求開發(fā)人員有很高的編程水平。筆者通過對Prodave進(jìn)行研究,以S7315-2PN/DP PLC為下位機(jī),采用VS2008編程工具,開發(fā)了一種PLC與PC機(jī)之間的以太網(wǎng)通信軟件。

        1 Prodave簡介

        Prodave是用于PC與S7系列PLC間數(shù)據(jù)通信的工具軟件包[3]。Prodave提供了大量基于Windows操作系統(tǒng)的DLL函數(shù),以解決PLC與PC之間數(shù)據(jù)交換和處理的問題,可以在高級語言編程環(huán)境中調(diào)用這些函數(shù)來建立或斷開通信連接、讀寫CPU的系統(tǒng)存儲器。它具有以下特點(diǎn):

        a. 支持PC上的標(biāo)準(zhǔn)以太網(wǎng)卡和Simatic S7的以太網(wǎng)口(CPU31XX-PN、CP31X-PN、CP343和CP443);

        b. 能讀寫PLC中DB塊和內(nèi)存的數(shù)據(jù);

        c. 支持S7-200 PLC、S7-300 PLC和S7-400 PLC;

        d. PLC側(cè)無需編程,只需在PC中編寫程序,調(diào)用Prodave的DLL即可,支持VB、VC及DEPHI等高級語言。

        2 Prodave函數(shù)

        連接PLC函數(shù)LoadConnection_ex6()用于初始化適配器,檢查是否裝載了驅(qū)動,并將選擇的通信接口激活??梢杂脕硗ㄟ^MPI或IP地址建立對PLC的連接。函數(shù)原型為LoadConnection_ex6(int ConNr, char* pAccessPoint, int ConTableLen, CON_TABLE_TYPE * pConTable)。ConNr是連接PLC的序號(0~63),最多可以連接64個(gè);pAccessPoint為訪問點(diǎn),“S7ONLINE”表示MPI方式,“1”表示TCP/IP方式,“2”表示MAC方式;ConTableLen為地址表的長度;pConTable為地址表,用于存放PLC的地址。

        激活PLC函數(shù)SetActiveConnection_ex6()用于激活PLC和PC之間建立的連接。函數(shù)原型為int SetActiveConnection_ex6(int ConNr),ConNr是連接序號。

        讀取PLC數(shù)據(jù)函數(shù)。函數(shù)db_read_ex6()和field_read_ex6()分別用來讀取PLC中的任意存儲區(qū)數(shù)據(jù)和DB數(shù)據(jù),可采用字、雙字的方式,讀取的數(shù)據(jù)放在PC的數(shù)據(jù)緩沖區(qū)。field_read_ex6()的函數(shù)原型為int field_read_ex6 (char FieldType, unsigned short BlkNr, unsigned short StartNr, unsigned long Amount, unsigned long BufLen, unsigned char * pBuffer, unsigned long * pDatLen),其參數(shù)見表1,db_read_ex6()與它類似。

        表1 讀取PLC數(shù)據(jù)函數(shù)參數(shù)

        寫數(shù)據(jù)至PLC。函數(shù)field_write_ex6()和db_write_ex6()用于向PLC中寫入數(shù)據(jù),其參數(shù)和讀取PLC數(shù)據(jù)函數(shù)類似。

        位狀態(tài)讀取和寫入函數(shù)。函數(shù)mb_bittest_ex6()和mb_setbit_ex6()分別用來讀取和寫入PLC中的某個(gè)位變量,mb_bittest_ex6()的函數(shù)原型為int mb_bittest_ex6 (unsigned short MbNr, unsigned short BitNr, int * pValue),其中MbNr為字節(jié)號,BitNr為位號,pValue為狀態(tài)(“1”表示TRUE,“0”表示FALSE)。兩個(gè)函數(shù)的參數(shù)意義相同。

        3 PLC和PC通信實(shí)例

        3.1 動態(tài)鏈接庫及其特點(diǎn)

        動態(tài)鏈接庫(Dynamic Link Library, DLL)是微軟公司在微軟視窗操作系統(tǒng)中實(shí)現(xiàn)共享函數(shù)庫概念的一種方式。這些庫函數(shù)的擴(kuò)展名是.DLL、.OCX(包含ActiveX控制的庫)或者.DRV(舊式的系統(tǒng)驅(qū)動程序)。

        動態(tài)鏈接庫是不能直接執(zhí)行的,也不能接收消息,它只是一個(gè)獨(dú)立的文件,它提供了一種方法使進(jìn)程可以調(diào)用不屬于其可執(zhí)行代碼的函數(shù)。函數(shù)的可執(zhí)行代碼位于一個(gè)DLL中,該DLL包含一個(gè)或多個(gè)已被編譯、鏈接并與使用它們的進(jìn)程分開存儲的函數(shù)。DLL還有助于共享數(shù)據(jù)和資源。多個(gè)應(yīng)用程序可同時(shí)訪問內(nèi)存中單個(gè)DLL副本的內(nèi)容。

        動態(tài)鏈接庫在電腦中可以更容易地將更新應(yīng)用于各個(gè)模塊,而不會影響該程序的其他部分。例如,一個(gè)大型的軟件,如果把整個(gè)數(shù)百M(fèi)B甚至數(shù)GB的程序代碼都放在一個(gè)應(yīng)用程序里,日后的修改工作將會十分費(fèi)時(shí),而如果把不同功能的代碼分別放在數(shù)個(gè)動態(tài)鏈接庫中,無需重新生成或安裝整個(gè)程序就可以應(yīng)用更新,更有利于軟件的模塊化設(shè)計(jì)。

        3.2 Visual Studio2008對Prodave6.0 DLL文件的引用

        在VS2008中調(diào)用DLL時(shí),需要添加如下代碼:

        using System.Runtime.InteropServices; //用于調(diào)用動態(tài)庫的接口;

        在調(diào)用DLL中的某個(gè)函數(shù)時(shí),首先必須要有一個(gè)聲明,使用的是DllImport關(guān)鍵字:[DllImport("Prodave6.dll")],代碼中DllImport關(guān)鍵字的作用是告訴編譯器入口點(diǎn)在哪里,并將打包函數(shù)捆綁在類Prodave中。

        然后對函數(shù)進(jìn)行聲明:

        public extern static int LoadConnection_ex6(int ConNr, string pAccessPoint, int ConTableLen, ref CON_TABLE_TYPE pConTable);// 連接PLC操作;

        進(jìn)行以上操作之后,便可以在程序中使用DLL中的函數(shù)了。

        3.3 西門子STEP7對PLC的設(shè)置

        在進(jìn)行通信之前,需要對西門子的PG/PC接口進(jìn)行設(shè)置。在開始菜單中,打開“設(shè)置PG/PC接口”(圖1),在選項(xiàng)中選擇TCP/IP所對應(yīng)的網(wǎng)卡,確定即可。

        3.4 PLC和PC之間的通信流程

        在PLC和PC進(jìn)行通信之前,需要對通信參數(shù)進(jìn)行設(shè)置,筆者采用以太網(wǎng)通信方式,故在監(jiān)控界面中輸入PLC的IP地址,之后才能建立連接。建立連接之后,系統(tǒng)啟動定時(shí)器和數(shù)據(jù)庫,定時(shí)器以一定間隔執(zhí)行讀寫函數(shù)和數(shù)據(jù)處理函數(shù),并在畫面中實(shí)時(shí)顯示;數(shù)據(jù)庫對需要記錄的數(shù)據(jù)及時(shí)保存。定時(shí)器函數(shù)的執(zhí)行周期可以在畫面中設(shè)置。

        圖1 西門子STEP7中對PLC的設(shè)置

        在通信過程中,系統(tǒng)每執(zhí)行一次函數(shù),都會返回一個(gè)代碼,軟件通過對代碼進(jìn)行解析,判斷函數(shù)是否被正確執(zhí)行,如果錯(cuò)誤,則會觸發(fā)報(bào)警提示,并中斷此函數(shù)的執(zhí)行。

        4 PC和PLC的通信程序設(shè)計(jì)

        4.1 PC和PLC通信程序要實(shí)現(xiàn)的功能

        上位機(jī)程序框架如圖2所示。

        圖2 PC和PLC通信程序框架

        定時(shí)器周期執(zhí)行函數(shù)。本系統(tǒng)中,定時(shí)器更新周期設(shè)定為100ms和500ms,其中,數(shù)據(jù)讀寫函數(shù)周期為100ms,以適應(yīng)工業(yè)控制中快速變化的參數(shù);數(shù)據(jù)庫記錄函數(shù)和狀態(tài)信息顯示函數(shù)周期為500ms。

        畫面設(shè)置、操作和顯示。本部分主要實(shí)現(xiàn)人機(jī)接口功能。參數(shù)設(shè)置主要是通信方式和通信參數(shù)的選擇,分為TCP/IP、MPI和MAC共3種通信方式,筆者選用TCP/IP方式,則需把PLC的IP地址設(shè)置到畫面中,在設(shè)置過程中,必須使PLC和PC的IP地址在同一網(wǎng)段。實(shí)時(shí)趨勢顯示系統(tǒng)中主要設(shè)備參數(shù)的實(shí)時(shí)數(shù)據(jù),采TeeChart控件實(shí)現(xiàn),可以同時(shí)顯示8條實(shí)時(shí)曲線。報(bào)警光字牌顯示系統(tǒng)中重要的報(bào)警信息,當(dāng)報(bào)警觸發(fā)時(shí),以閃爍方式做出提醒。操作記錄顯示模塊記錄軟件運(yùn)行中,畫面中的主要操作,包括操作人、操作時(shí)間及操作事件等信息。模擬鍵盤為軟件的輸入提供了操作接口。

        PLC信息。主要包括PLC內(nèi)部的狀態(tài)信息、數(shù)據(jù)塊信息及診斷緩沖區(qū)信息等。

        輔助功能。主要包括程序?qū)rodave動態(tài)鏈接庫的調(diào)用和數(shù)據(jù)處理函數(shù)。

        4.2 PC和PLC通信程序的實(shí)現(xiàn)

        采用Prodave進(jìn)行PC和PLC通信的流程如圖3所示。

        圖3 PC和PLC的通信流程

        由于通信過程中PLC側(cè)不需要編寫程序,因此只需在PC側(cè)進(jìn)行編程即可。建立并激活鏈接的程序代碼如下:

        short ConNr = 6;//定義鏈接號,0~63可選;

        string AccessPoint = "S7ONLINE"; // 默認(rèn)訪問點(diǎn)為“S7ONLINE”;

        ConTable.AdrType = 2; //PC和PLC的通信方式,此處選擇為TCP/IP;

        ConTable.SlotNr = 2; //PLC的插槽號;

        ConTable.RackNr = 0; //PLC的機(jī)架號;

        RetValue_ConnectPlc=ProdaveTest.Prodave.LoadConnection_ex6(ConNr, AccessPoint, ConTableLen, ref ConTable);//連接PLC;

        以上為PC連接PLC的函數(shù)代碼,RetValue_ConnectPlc為函數(shù)的返回值,若為“0”表示執(zhí)行成功。連接成功之后,需要將此鏈接激活,代碼為:

        RetValue_ActivePLC=ProdaveTest.Prodave.SetActiveConnection_ex6(UConNr);//激活鏈接;

        若激活成功,則可繼續(xù)進(jìn)行數(shù)據(jù)傳輸。如果函數(shù)執(zhí)行不成功,可以通過GetErrorMsg()函數(shù)來確定返回值所表示的意思。

        設(shè)計(jì)中,PLC中的數(shù)據(jù)存放在DB1數(shù)據(jù)塊中,以下程序代碼讀取的是DB1中從地址0開始的8個(gè)浮點(diǎn)型數(shù)據(jù):

        UInt16 BlkNr = 1;//PLC中DB數(shù)據(jù)庫塊的序號;

        Prodave.DatType DType = Prodave.DatType.BYTE;//以字節(jié)的形式讀取數(shù)據(jù);

        UInt16 StartNr = 0;//DB數(shù)據(jù)塊中要讀取數(shù)據(jù)的起始地址號;

        UInt32 pAmount = 32;//讀取數(shù)據(jù)的數(shù)量;

        UInt32 BufLen = 32;//定義緩沖區(qū)長度;

        byte[] pReadBuffer = new byte[32];//開辟存儲空間;

        UInt32 pDatLen = 0;//初始化緩沖區(qū);

        RetValue_ReadDB=ProdaveTest.Prodave.db_read_ex6(BlkNr, DType, StartNr, ref pAmount, BufLen, pReadBuffer, ref pDatLen);//讀取函數(shù);

        讀取PLC中M存儲區(qū)數(shù)據(jù)的代碼為:

        RetValue_ReadMzone=ProdaveTest.Prodave.field_read_ex6(FType, BlkNr, StartNr, pAmount, BufLen, pReadBuffer, ref pDatLen);//讀取M存儲區(qū)數(shù)據(jù);

        其參數(shù)和讀取DB數(shù)據(jù)的函數(shù)類似。值得注意的是,在PLC系統(tǒng)中,很多設(shè)備的狀態(tài)變量、報(bào)警變量等都是以BOOL型數(shù)據(jù)存在的,在Prodave工具包中,有專門讀寫PLC中某一位的函數(shù),但是,如果狀態(tài)變量較多,需要反復(fù)調(diào)用函數(shù),效率太低,使用field_read_ex6()函數(shù)可以解決這一難題。在PLC中定義變量的時(shí)候,可以定義一段連續(xù)的存儲空間用來存放系統(tǒng)中的狀態(tài)變量,再采用field_read_ex6()函數(shù)以字節(jié)的形式讀取,進(jìn)行簡單的邏輯運(yùn)算之后即可得到一個(gè)字節(jié)中8個(gè)位變量的信息。

        5 結(jié)束語

        通過對西門子Prodave工具包的研究,提出了西門子PLC和PC的以太網(wǎng)通信方法。Visual Studio2008編程方便、性能穩(wěn)定、可靠性高,通過它對Prodave動態(tài)鏈接庫的調(diào)用,實(shí)現(xiàn)了PC對PLC的讀寫操作。編寫的以太網(wǎng)通信程序界面友好、人機(jī)交互方便、數(shù)據(jù)庫功能較強(qiáng)。筆者提出的通信方法,對西門子S7-200 PLC、S7-300 PLC和S7-400 PLC具有通用性,可以推廣應(yīng)用。

        [1] 馬健,韓曉華,黃旭平,等.PC上位機(jī)與S7-300系列PLC進(jìn)行通訊的研究[J].制造技術(shù)與機(jī)床,2011,(3):169~172.

        [2] 趙軍,時(shí)良平,黃春陽.基于Prodave技術(shù)的西門子PLC監(jiān)控調(diào)試軟件開發(fā)[J].自動化應(yīng)用,2011,(10):26~28.

        [3] 唐東明,聶詩良.PRODAVE在S7-300PLC監(jiān)控系統(tǒng)中的應(yīng)用[J].可編程控制器與工廠自動化, 2007,(8):41~42.

        TheStudyonEthernetCommunicationbetweenSiemensPLCandPCBasedonProdave

        ZHU Guang-chang, YU Xiao-min
        (ZhongnanBranch,HuadianElectricPowerResearchInstitute)

        The Prodave toolkit-based communication between Siemens PLC and PC was proposed, which asks for no programming at PLC and only adopts high-level language to call some functions at PC. This communication method costs lower and has high reliability.

        Ethernet communication, Siemens PLC, Prodave

        TH862+.7

        B

        1000-3932(2017)04-0397-04

        2016-10-10,

        2016-10-31)

        祝廣場(1984-),工程師,從事火電廠熱工自動化控制和保護(hù)工作,14815197@qq.com。

        猜你喜歡
        西門子調(diào)用以太網(wǎng)
        基于1500以太網(wǎng)養(yǎng)豬場的智能飼喂控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
        核電項(xiàng)目物項(xiàng)調(diào)用管理的應(yīng)用研究
        LabWindows/CVI下基于ActiveX技術(shù)的Excel調(diào)用
        西門子重型燃機(jī)出海
        能源(2017年7期)2018-01-19 05:05:05
        談實(shí)時(shí)以太網(wǎng)EtherCAT技術(shù)在變電站自動化中的應(yīng)用
        電子制作(2017年24期)2017-02-02 07:14:44
        基于系統(tǒng)調(diào)用的惡意軟件檢測技術(shù)研究
        一種90W高功率以太網(wǎng)供電系統(tǒng)的設(shè)計(jì)
        西門子亮相CIIF201
        淺談EPON與工業(yè)以太網(wǎng)在貴遵高速公路中的應(yīng)用
        西門子 分布式I/O Simatic ET 200AL
        蜜臀一区二区av天堂| 国产精品,在线点播影院| 日本岛国精品中文字幕| 日本经典中文字幕人妻| 91中文在线九色视频| 久久一区二区三区少妇人妻| 精品日本韩国一区二区三区| 亚洲国产精品自拍成人| 国产日本精品一二三四区| 亚洲色精品三区二区一区 | 国产精品一区二区三区蜜臀| 视频一区精品中文字幕| 精品国产自在现线看久久| 狠狠色狠狠色综合网| 伊人久久大香线蕉av不卡| 国产精品美女一区二区三区 | 337p日本欧洲亚洲大胆精品| 欧美亚洲日本在线| 国产成社区在线视频观看| 国内偷拍视频一区二区| 日本高清视频在线观看一区二区 | 老熟女重囗味hdxx70星空| 欧美丰满熟妇bbbbbb百度| 久草热这里只有精品在线| 国产在线拍91揄自揄视精品91| 久草中文在线这里只有精品| 国产又猛又黄又爽| 老外和中国女人毛片免费视频| 国产福利片无码区在线观看| 自拍视频国产在线观看| 日本伦理美乳中文字幕| 亚洲啪啪视频一区二区| 天天爽天天爽夜夜爽毛片 | 亚洲av无码一区东京热| 国产无遮挡又黄又爽在线观看| 美女高潮无遮挡免费视频 | 精品午夜福利无人区乱码一区| 国产真实露脸4p视频| 亚洲人妻中文字幕在线视频| 国产无卡视频在线观看| 免费人成小说在线观看网站|