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

        ?

        以單片機(jī)作為S7-200 PLC從站的PPI協(xié)議的設(shè)計(jì)

        2012-08-15 02:03:10梅大成
        關(guān)鍵詞:斷點(diǎn)主站字符

        孟 強(qiáng),梅大成,秦 勃,葉 強(qiáng)

        (西南石油大學(xué),四川 成都,610500)

        在工業(yè)控制領(lǐng)域,可編程邏輯控制器PLC(Programmable Logic Controller)以其可靠性高、抗干擾能力強(qiáng),通用性強(qiáng)、靈活性好、功能齊全、編程簡(jiǎn)單、使用方便以及安裝簡(jiǎn)便等特點(diǎn)而得到了廣泛的應(yīng)用。現(xiàn)代工業(yè)控制系統(tǒng)大都向著分散化、網(wǎng)絡(luò)化和智能化方向發(fā)展,如何實(shí)現(xiàn)現(xiàn)場(chǎng)分散的控制設(shè)備的網(wǎng)絡(luò)通信十分重要。

        西 門(mén) 子 公司 的 S7-200系列 PLC支 持 PPI、MPI、Profibus和自由口通信等多種通信方式。采用MPI協(xié)議需要相應(yīng)的CP卡或MPI卡支持,如CP5511通信卡;若采用Profibus協(xié)議,則需要 Profibus-DP模塊 EM277;若采用自由口方式,則在PLC中需要編寫(xiě)通信程序,占用PLC有限的程序存儲(chǔ)空間,同時(shí)也難以保證在惡劣復(fù)雜環(huán)境下通信數(shù)據(jù)的正確可靠性;若采用PPI協(xié)議,只需在整個(gè)通信網(wǎng)絡(luò)中選定1個(gè)PLC作為通信主站點(diǎn),其他PLC都作為從站點(diǎn),主站PLC通過(guò)NetR/NetW指令周期性地與從站PLC進(jìn)行數(shù)據(jù)交換,這種通信方式非常簡(jiǎn)單可靠,得到了廣泛的應(yīng)用。在實(shí)際應(yīng)用中通常又需要PLC能夠與其他設(shè)備通信,本文以單片機(jī)串口通信為例,詳細(xì)地分析了NetR/NetW指令的通信流程與數(shù)據(jù)格式,并設(shè)計(jì)出了單片機(jī)串口通信協(xié)議,使PLC能夠使用NetR/NetW指令與單片機(jī)通信。

        1 S7-200系列PLC網(wǎng)絡(luò)讀寫(xiě)指令分析

        1.1 PPI協(xié)議簡(jiǎn)介

        PPI是西門(mén)子公司專(zhuān)門(mén)為S7-200系列PLC開(kāi)發(fā)的通信協(xié)議,內(nèi)置于S7-200 CPU中。PPI物理上基于RS485接口,通過(guò)屏蔽雙絞線就可以實(shí)現(xiàn)PPI通信,是一種主-從通信協(xié)議。主站設(shè)備發(fā)送要求到從站設(shè)備,從站設(shè)備響應(yīng),從站本身不能主動(dòng)發(fā)出信息。為了進(jìn)行PPI通信,S7-200系列PLC專(zhuān)門(mén)配備了網(wǎng)絡(luò)讀指令及網(wǎng)絡(luò)寫(xiě)指令,使用STEP 7-Micro WIN中的NetR/NetW Wizard可以很方便地配置網(wǎng)絡(luò)通信。使用該向?qū)Э梢跃庉嬜疃?4條網(wǎng)絡(luò)讀寫(xiě)指令,每條網(wǎng)絡(luò)讀寫(xiě)指令最多能夠讀或者寫(xiě)16 B的數(shù)據(jù)。其核心是使用順序控制指令,這樣在任一時(shí)刻只有一條NetR/NetW指令有效。在主程序中必須用SM0.0指令來(lái)調(diào)用該向?qū)傻淖映绦颍员WC它的正常運(yùn)行。該子程序有3個(gè)參數(shù):

        (1)Timeout(超時(shí))。 0 為不計(jì)時(shí);1-36767 為設(shè)置以秒為單位的超時(shí)延時(shí)時(shí)間。如果通信有問(wèn)題的時(shí)間超出此延時(shí)時(shí)間,則會(huì)報(bào)告錯(cuò)誤。

        (2)Cycle(周期)。所有網(wǎng)絡(luò)讀/寫(xiě)操作每完成一次切換狀態(tài)。

        (3)Error(錯(cuò)誤)。 0 為無(wú)錯(cuò)誤;1 為出錯(cuò),通過(guò)檢查NetR/NetW指令緩沖區(qū)狀態(tài)字節(jié),可以獲取錯(cuò)誤代碼。

        1.2 PPI協(xié)議數(shù)據(jù)幀分析

        利用CommMonitor6.0工具監(jiān)控單主站PLC之間的通信,可以獲得4種不同的數(shù)據(jù)幀。

        (1)令牌幀:SD1,DA SA;

        (2)無(wú)數(shù)據(jù)字段的固定長(zhǎng)度的請(qǐng)求幀或應(yīng)答幀:SD2,DA SA FC FCS ED;

        (3)有可變數(shù)據(jù)字段的請(qǐng)求或應(yīng)答幀:SD3,LE LER SD3 DA SA FC DU FCS ED;

        (4)短應(yīng)答幀:SC。

        SD1~SD3為開(kāi)始定界符,以區(qū)別不同類(lèi)型的幀格式,SD1=0xDC,SD2=0x10,SD3=0x68;LE=LER, 表 示 從DA至DU的數(shù)據(jù)長(zhǎng)度;DA為目的地址,指示接收該幀的站;SA為源地址,指示發(fā)送該幀的站;FC為幀控制字節(jié),包含用于該幀服務(wù)和優(yōu)先權(quán)等的詳細(xì)說(shuō)明;DU為數(shù)據(jù)字段,包含有效的數(shù)據(jù)信息;FCS為幀校驗(yàn)字節(jié),表示從DA到DU之間的校驗(yàn)和的256余數(shù);ED為幀結(jié)束定界符(0x16);SC為單一字符(0xE5),用于從站的確認(rèn)。

        當(dāng)系統(tǒng)主站PLC上電運(yùn)行后,在一定時(shí)間(即用戶所設(shè)定的Timeout時(shí)間內(nèi))會(huì)進(jìn)行通信網(wǎng)絡(luò)初始化,首先生成令牌并初始化令牌環(huán),由于是單主站系統(tǒng),該主站將會(huì)一直持有該令牌。接著主站就會(huì)不斷地搜索它管轄范圍的從站,通常從用戶所配置的第一條NetR/NetW指令的從站地址開(kāi)始,搜索范圍也由用戶設(shè)定(一般為0~31)。主站首先發(fā)送請(qǐng)求幀 10DA SA FC FCSED(FC功能碼為49H,表示有回答要求的從站狀態(tài)查詢(xún)),從站正確接收到后將發(fā)送響應(yīng)幀10 SA DA FC FCS ED (FC功能碼為00H,表示應(yīng)答肯定)。接著主站繼續(xù)搜索下一個(gè)從站,一定時(shí)間內(nèi)如果沒(méi)有從站響應(yīng),則將繼續(xù)進(jìn)行下一個(gè)網(wǎng)絡(luò)地址搜索。主站PLC一直重復(fù)循環(huán)此過(guò)程,并將從站狀態(tài)信息記錄下來(lái),直到Timeout時(shí)間到,主站才開(kāi)始真正執(zhí)行由用戶所配置NetR/NetW操作。

        1.3 NetR指令分析

        由NetR/NetW指令向?qū)?chuàng)建的指令,最多只能讀取16 B的信息,而且指令是順序執(zhí)行的,完成一條讀指令需要兩次數(shù)據(jù)收發(fā)。在測(cè)試過(guò)程中,設(shè)定主站PLC地址為01,從站PLC地址為02,主站從PLC從站的VB100~VB115存儲(chǔ)區(qū)讀取16 B的通信過(guò)程如下:

        (1)首先主站PLC發(fā)出讀命令,數(shù)據(jù)格式為:

        0 1 2 3 4 5 6 7 8 9 10111213141516 68 1B 1B 68 02 01 6C 32 01 00 00 02 02 00 0E 00 00

        17181920212223242526272829303132 0401 120A 100200 100001840003209F 16

        對(duì)于讀取固定地址的固定長(zhǎng)度的NetR命令,其中第6、11、12、31字節(jié)的數(shù)據(jù)會(huì)發(fā)生改變,其他數(shù)據(jù)保持不變。第6字節(jié)數(shù)據(jù)為功能碼,只有在首次觸發(fā)時(shí)為6CH,下次讀命令則為7CH,如果無(wú)通信故障,會(huì)一直保持不變,否則會(huì)在5CH與7CH之間一直交替執(zhí)行,通信恢復(fù)正常后,保持5CH或7CH不變。第11、12字節(jié)數(shù)據(jù)總是相同的,而且每執(zhí)行一次NetR命令,它們的值會(huì)增1,達(dá)到FFH后,又從00H開(kāi)始。第31字節(jié)數(shù)據(jù)為校驗(yàn)和,表示第4~第30字節(jié)的數(shù)據(jù)和的256余數(shù)。

        (2)從站PLC接收判斷正確后,則作出響應(yīng)返回E5。

        (3)主站接到從站響應(yīng)后,則發(fā)出確認(rèn)讀命令10 02 01 5C 5F 16,其中第3字節(jié)數(shù)據(jù)5CH為功能碼。當(dāng)首次讀命令的功能碼為6CH或7CH時(shí),該字節(jié)數(shù)據(jù)為5CH;當(dāng)首次讀命令功能碼為5CH時(shí),該字節(jié)數(shù)據(jù)為7CH。

        (4)從站接收到確認(rèn)讀指令后,才會(huì)將有用數(shù)據(jù)返回給主站PLC,返回?cái)?shù)據(jù)格式為:

        0 1 2 3 4 5 6 7 8 9 10111213141516 6825 2568010208 320300000202000200 14

        1718 1920212223 242526272829303132 33 0000 0401FF 04 00 8000112233 44556677 88

        3435 3637383940 41 42 99 AA BB CC DD EE FF DA 16

        返回的有用數(shù)據(jù)為第 25~第 40字節(jié)的共16 B,第41字節(jié)為第4~第 40字節(jié)的數(shù)據(jù)的校驗(yàn)和,而且第11、12字節(jié)的數(shù)據(jù)必須與主站讀命令的第11、12字節(jié)保持一致。

        這樣經(jīng)過(guò)兩次收發(fā)數(shù)據(jù),才能正確完成一次數(shù)據(jù)的讀操作。

        1.4 NetW指令分析

        (1)首先主站 PLC發(fā)出寫(xiě)命令,數(shù)據(jù)格式為:68 2F 2F 68 02 01 6C 32 01 00 00 02 02 00 0E 00 14 05 01 12 0A 10 02 00 10 00 01 84 00 03 20 00 04 00 80 00 11 22 33 44 55 66 77 88 99 AA BB CC DD EE FF 30 16。其中,第 6、11、12 字節(jié)數(shù)據(jù)規(guī)則與NetR命令一致,第51字節(jié)數(shù)據(jù)為校驗(yàn)和,第35~50字節(jié)的數(shù)據(jù)為真正的要寫(xiě)入從站的有用數(shù)據(jù)。

        (2)從站 PLC正確接收后,則作出響應(yīng),返回 E5。

        (3)主站接收到此響應(yīng)后,則發(fā)出確認(rèn)寫(xiě)命令10 02 01 5C 5F 16,第3字節(jié)數(shù)據(jù)規(guī)則與NetR命令一致。

        (4)從站接收到確認(rèn)寫(xiě)命令后,返回確認(rèn)命令 68 12 12 68 01 02 08 32 03 00 00 02 02 00 02 00 01 00 00 05 01 FF 4C 16。第11、12字節(jié)數(shù)據(jù)與主站寫(xiě)命令應(yīng)保持一致,這樣收發(fā)兩次數(shù)據(jù),才能完成一次數(shù)據(jù)的寫(xiě)操作。

        2 單片機(jī)串口通信協(xié)議設(shè)計(jì)

        2.1 串口通信方式選擇

        PPI協(xié)議物理上采用RS485標(biāo)準(zhǔn),每個(gè)字符擴(kuò)展成11 bit,采用 NRZ(不歸零)編碼。首先是 1 bit開(kāi)始位,它總是二進(jìn)制“0”,接著是 8 bit信息位,之后是 1 bit奇偶校驗(yàn)位(PPI協(xié)議規(guī)定為偶檢驗(yàn)),最后是 1 bit停止位,它總是二進(jìn)制“1”。

        因此,應(yīng)將單片機(jī)串口通信設(shè)置為工作方式3:9 bit UART通信模式,8 bit數(shù)據(jù)位與1 bit奇偶檢驗(yàn)位,奇偶校驗(yàn)方式使用偶校驗(yàn);定時(shí)器1用作波特率發(fā)生器,選擇工作方式2,8 bit自動(dòng)重裝模式,在這里使用9 600 b/s波特率,由式(1)、(2)計(jì)算可得,TL1=0xFD。

        串口通信初始化程序:

        2.2 接收信息起始條件和結(jié)束條件選擇

        在串口通信過(guò)程中,單片機(jī)有可能從一個(gè)字符的中間開(kāi)始接收字符,從而導(dǎo)致校驗(yàn)錯(cuò)誤和接收信息功能終止,為避免出現(xiàn)此類(lèi)問(wèn)題,就需要在接收開(kāi)始前,對(duì)信息的起始和結(jié)束條件進(jìn)行定義。

        由于PLC會(huì)發(fā)送3種不同類(lèi)型的數(shù)據(jù)幀,并且單片機(jī)需要及時(shí)做出正確的響應(yīng),因此,單片機(jī)在接收到不同的數(shù)據(jù)幀時(shí)應(yīng)作出不同的響應(yīng)。單片機(jī)采用中斷的方式接收數(shù)據(jù),而由于在PPI協(xié)議中,并沒(méi)有固定的起始字符,經(jīng)過(guò)分析,采用斷點(diǎn)檢測(cè)的方法來(lái)作為接收起始條件。斷點(diǎn)是指在小于一個(gè)完整字符傳輸時(shí)間的一段時(shí)間內(nèi),接收數(shù)據(jù)一直為0,只有在斷點(diǎn)之后接收到的字符才會(huì)存入到信息緩沖區(qū),任何在斷點(diǎn)之前接收到的字符都被忽略。一個(gè)完整字符傳輸時(shí)間定義為傳輸起始位、數(shù)據(jù)位、校驗(yàn)位和停止位的時(shí)間總和。在本系統(tǒng)中,通信波特率為9 600 b/s,因此傳輸一個(gè)完整的字符(11 bit)時(shí)間為t=11/9 600,即為 1.145 83 ms,為了方便,斷點(diǎn)檢測(cè)時(shí)間可以設(shè)定為2 ms。

        信息結(jié)束采用字符間隔定時(shí)器的方式來(lái)判斷一條信息的結(jié)束。字符間隔時(shí)間是指從一個(gè)字符的結(jié)尾(停止位)到下一個(gè)字符的結(jié)尾(停止位)之間的時(shí)間。在數(shù)據(jù)傳輸過(guò)程中,如果兩個(gè)字符之間的時(shí)間間隔超過(guò)了所設(shè)定的時(shí)間,則表示這條信息接收完成。由于定時(shí)器總是包含接收一個(gè)完整字符的時(shí)間,因此該時(shí)間值應(yīng)設(shè)置為大于在指定波特率下傳輸一個(gè)字符的時(shí)間 (在此為1.145 83 ms),在這里設(shè)置為 2 ms。單片機(jī)在每接收到一個(gè)字符后,都要重啟字符間隔定時(shí)器,如果超時(shí),則表示信息接收完成。

        由于單片機(jī)硬件資源有限,只提供2個(gè)定時(shí)器,定時(shí)器1用作波特率發(fā)生器,斷點(diǎn)檢測(cè)和字符間隔定時(shí)器的時(shí)間都為2 ms,因此可以共用定時(shí)器0。為了計(jì)算方便,定時(shí)器 0選擇工作方式 1(16 bit定時(shí)器),初值為T(mén)H0=0xFF,TL0=0xFD。

        2.3 數(shù)據(jù)字符檢驗(yàn)程序

        接收校驗(yàn)程序如下:

        發(fā)送校驗(yàn)程序如下:

        單片機(jī)在接收到一條完整的信息后,首先會(huì)進(jìn)行數(shù)據(jù)幀分析,通過(guò)比較,判斷主站PLC發(fā)送的數(shù)據(jù)幀類(lèi)型,并對(duì)判斷正確的請(qǐng)求幀給予正確的響應(yīng),返回給PLC正確的數(shù)據(jù)格式。使用Keil開(kāi)發(fā)工具編寫(xiě)C51程序代碼,采用結(jié)構(gòu)化程序設(shè)計(jì)思想,程序流程圖如圖1所示。

        圖1 程序流程圖

        3 結(jié)果驗(yàn)證

        最后通過(guò)通信測(cè)試驗(yàn)證,PLC主站能夠使用NetR/NetW指令很方便地讀取單片機(jī)的數(shù)據(jù)或向單片機(jī)寫(xiě)入給定的數(shù)據(jù)。而且在具有多個(gè)PLC從站的PPI網(wǎng)絡(luò)中,通過(guò)設(shè)定不同從站地址,將多個(gè)單片機(jī)接入到該網(wǎng)絡(luò)中,作為主站的PLC也能夠正常地訪問(wèn)各個(gè)從站PLC與單片機(jī)從站,它們之間的通信穩(wěn)定可靠,且互不影響,這也為以后在PPI網(wǎng)絡(luò)中擴(kuò)展其他智能設(shè)備提供了可行性。

        [1]張揚(yáng),蔡春偉,孫明建.S7-200 PLC原理與應(yīng)用系統(tǒng)設(shè)計(jì)[M].北京:機(jī)械工業(yè)出版社,2007.

        [2]孫鶴旭,梁濤,云利軍.Profibus現(xiàn)場(chǎng)總線控制系統(tǒng)的設(shè)計(jì)與開(kāi)發(fā)[M].北京:國(guó)防工業(yè)出版社,2007.

        [3]馬忠梅,籍順心,張凱,等.單片機(jī)的 C語(yǔ)言應(yīng)用程序設(shè)計(jì)[M].北京:北京航空航天大學(xué)出版社,2005.

        [4]廖常初.PLC編程及應(yīng)用[M].北京:機(jī)械工業(yè)出版社,2008.

        猜你喜歡
        斷點(diǎn)主站字符
        尋找更強(qiáng)的字符映射管理器
        字符代表幾
        一種USB接口字符液晶控制器設(shè)計(jì)
        電子制作(2019年19期)2019-11-23 08:41:50
        一類(lèi)無(wú)限可能問(wèn)題的解法
        消失的殖民村莊和神秘字符
        主導(dǎo)電回路發(fā)生斷點(diǎn)故障判斷方法探討
        基于OS2主站系統(tǒng)的海量數(shù)據(jù)共享技術(shù)研究
        多表遠(yuǎn)程集抄主站系統(tǒng)
        電子制作(2017年23期)2017-02-02 07:17:07
        基于改進(jìn)經(jīng)濟(jì)壓差算法的主站AVC的研究
        關(guān)口電能計(jì)量故障監(jiān)測(cè)報(bào)警裝置及主站研究
        国产三级精品美女三级| 天堂中文官网在线| 免费特级毛片| 欧美日韩国产专区| 风韵丰满妇啪啪区老老熟女杏吧| 亚洲精品岛国av一区二区| 风情韵味人妻hd| 台湾佬娱乐中文22vvvv| 国产一区二区欧美丝袜| 日本一区二区三区在线视频播放| 国产无套乱子伦精彩是白视频| 久久综合精品国产二区无码 | 久久蜜桃一区二区三区| 国产一区亚洲二区三区| 亚洲av无码成人专区片在线观看| 国产一区二区精品尤物| 丰满少妇又爽又紧又丰满动态视频| 色婷婷精品久久二区二区蜜桃| 亚洲va无码手机在线电影| 中文字幕少妇AV| 91人妻人人做人人爽九色| 99re6在线视频精品免费| 深夜福利小视频在线观看 | 最好看的亚洲中文字幕| 国产午夜精品一区二区三区嫩草| 国产精品18禁久久久久久久久| 精品一区二区三区女同免费| 熟妇人妻无乱码中文字幕av| 国产sm调教视频在线观看| 亚洲黄色尤物视频| 人妻有码中文字幕在线| 国产99视频精品免视看7| 波多野吉衣av无码| 中文字幕亚洲精品人妻| 91精品国产综合久久久蜜| av无码精品一区二区三区宅噜噜 | 日本中文字幕精品久久| 我把护士日出水了视频90分钟| 成人毛片18女人毛片免费| 亚洲香蕉久久一区二区| 又粗又黑又大的吊av|