• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      SiemensCP340模塊與C8051F021單片機(jī)ASCII協(xié)議通信的實(shí)現(xiàn)

      2014-10-21 20:02喬勇
      山東工業(yè)技術(shù) 2014年24期
      關(guān)鍵詞:字節(jié)指令通訊

      喬勇

      摘 要:本文詳細(xì)介紹了Siemens公司的點(diǎn)到點(diǎn)通信處理器模塊CP340如何與C8051F021單片機(jī)實(shí)現(xiàn)ASCII協(xié)議通信的。文章給出了硬件電路連接,介紹了通信協(xié)議的制定方法,并給出了PLC與單片機(jī)的編程介紹。

      關(guān)鍵詞:PLC;點(diǎn)到點(diǎn)通信;ASCII協(xié)議;RS-485

      0 引言

      本文介紹了CP340在SIMATIC S7-300中,采用RS-485的接口協(xié)議與C8051F021單片機(jī)的通訊解決方案,本系統(tǒng)以PLC為核心控制單元,通過(guò)通訊模塊CP340與單片機(jī)系統(tǒng)實(shí)現(xiàn)485通信,實(shí)現(xiàn)主控單元與單片機(jī)系統(tǒng)之間的指令、數(shù)據(jù)通訊;實(shí)現(xiàn)數(shù)據(jù)接收功能,最后由PLC負(fù)責(zé)將這些數(shù)據(jù)進(jìn)行運(yùn)算處理。

      CP340通訊處理器模塊可以在西門(mén)子 S7系列中使用,該模塊可以實(shí)現(xiàn)ASCII碼、打印機(jī)驅(qū)動(dòng)和3964三種通訊協(xié)議,通過(guò)集成在STEP7中參數(shù)化工具進(jìn)行設(shè)置。并提供了三種通訊接口:RS232、模擬量20mA、RS422/485。

      1 通訊接口設(shè)計(jì)

      CP340-RS422/485可配置RS422全雙工模式和RS485半雙工模式,方案設(shè)計(jì)中配置為RS485半雙工模式,CP340模塊提供一15針接頭,在硬件連接上需要引出第4腳R(A)/T(A)和第11腳R(B)/T(B)兩個(gè)數(shù)據(jù)線(xiàn)引腳;而C8051F021單片機(jī)只需配置一個(gè)全雙工的串行口線(xiàn),為了增強(qiáng)抗干攏能力,設(shè)計(jì)上選用了內(nèi)部集成隔離電路的MAX1480芯片,將其轉(zhuǎn)化成RS485信號(hào)。

      2 通訊協(xié)議的制定

      CP340可以傳輸十六位進(jìn)制的00-FF之間的任何數(shù)據(jù),用戶(hù)可以自己制定相關(guān)的傳輸協(xié)議,CP340的ASCII協(xié)議只有三種可選的波特率:2400bps、4800bps、9600bps。

      制定通信協(xié)議:?jiǎn)纹瑱C(jī)作為從機(jī),PLC作為主機(jī),從機(jī)在建立與主機(jī)通信之前,一直處于對(duì)通信線(xiàn)路的監(jiān)聽(tīng)狀態(tài),主機(jī)PLC通過(guò)CP340通訊模塊向從機(jī)發(fā)送通訊指令,從機(jī)在接收到指令后對(duì)其進(jìn)行識(shí)別,校驗(yàn),判斷是否主機(jī)呼叫從機(jī),如果地址相符,確認(rèn)呼叫從機(jī)。然后,從機(jī)停止監(jiān)聽(tīng)通訊線(xiàn)路,并發(fā)送程序指定的數(shù)據(jù)。通信的指令格式如下:

      (1)主機(jī)發(fā)送指令格式:從機(jī)地址號(hào){參數(shù)號(hào)1:參數(shù)值1, 參數(shù)號(hào)2:參數(shù)值2, ……}CRC16校驗(yàn)碼EOF。說(shuō)明:1)第一個(gè)字節(jié)是地址,所以第9位必須置1;其他字節(jié)隨意;2)第一個(gè)字節(jié)是從機(jī)特定地址。從機(jī)地址若被分配為ASCII碼“1”,轉(zhuǎn)換為十六進(jìn)制是:0x31;3)參數(shù)號(hào)不分大小先后,可以發(fā)送單個(gè)或者多個(gè)參數(shù),參數(shù)之間的分隔符可以是除了數(shù)字、e、E、小數(shù)點(diǎn)和冒號(hào)這些關(guān)鍵字之外的所有字符,例如空格、逗號(hào)等。所以參數(shù)可以分行。參數(shù)串以大括號(hào)“ }”結(jié)尾。所有字符都必須是ASCII字符。4)發(fā)送完參數(shù)串以后,上位機(jī)必須計(jì)算參數(shù)串的16位CRC校驗(yàn)碼,并將校驗(yàn)碼(用4位十六進(jìn)制字符表示)發(fā)送給下位機(jī),最后是EOF作為一幀數(shù)據(jù)的結(jié)尾。5)發(fā)送完EOF以后,從機(jī)計(jì)算接收到的參數(shù)串的16位CRC校驗(yàn)碼,如果和主機(jī)發(fā)送的校驗(yàn)碼吻合,則發(fā)送“1”作為通信有效應(yīng)答,否則發(fā)送“0”作為通信錯(cuò)誤應(yīng)答。如果主機(jī)在發(fā)送數(shù)據(jù)完成后在約定時(shí)間(2秒)內(nèi)沒(méi)有接收到任何應(yīng)答,也將認(rèn)為通信發(fā)生錯(cuò)誤。這樣主機(jī)可以根據(jù)應(yīng)答判斷通信狀況:“1”-發(fā)送成功;“0”-發(fā)送數(shù)據(jù)錯(cuò)誤;無(wú)應(yīng)答(“\0”)-可能線(xiàn)路發(fā)生故障。6)小于10的參數(shù)號(hào)不能在前面加“0”。如參數(shù)號(hào)“7”不能用“07”代替;7)參數(shù)號(hào)后面緊跟著冒號(hào)“:”,緊跟著參數(shù)值,緊跟著分隔符;(為了易于辨認(rèn),參數(shù)后可加注釋?zhuān)?)系統(tǒng)將順序搜索字符串,每當(dāng)找到一個(gè)冒號(hào)“:”,就提取它前面的參數(shù)號(hào)和它后面的參數(shù);直到字符串被搜索完畢。所以,如果傳輸多個(gè)相同的參數(shù)號(hào),系統(tǒng)將最終接受最后的1個(gè)。9)注意:?jiǎn)纹瑱C(jī)內(nèi)部串口輸入緩沖區(qū)長(zhǎng)度被設(shè)置為1024個(gè)字節(jié),輸出緩沖區(qū)長(zhǎng)度則是1024字節(jié)。所以單次發(fā)送的字符串(包括校驗(yàn)碼)總長(zhǎng)度不能超過(guò)1024個(gè)字節(jié)!

      (2)從機(jī)發(fā)送數(shù)據(jù)格式:從機(jī)地址號(hào){數(shù)據(jù)}CRC16校驗(yàn)碼EOF。

      3 通信程序設(shè)計(jì)

      (1)PLC通信程序設(shè)計(jì)。PLC(西門(mén)子 S7-300)以專(zhuān)用通訊模塊與CP340接口進(jìn)行數(shù)據(jù)交換,程序設(shè)計(jì)中用到功能塊FB3(發(fā)送數(shù)據(jù))和FB2(接收數(shù)據(jù)),F(xiàn)B3將數(shù)據(jù)塊中的數(shù)據(jù)寫(xiě)入到CP340的發(fā)送緩沖區(qū)中,F(xiàn)B2將CP340接收緩沖區(qū)中的數(shù)據(jù)讀回,存入到接收數(shù)據(jù)塊中。

      設(shè)計(jì)程序的時(shí)候,使用一個(gè)延時(shí)定時(shí)器T0來(lái)控制超時(shí)的時(shí)間,超時(shí)的時(shí)間必須大于發(fā)送指令開(kāi)始到正確接收到一幀完整數(shù)據(jù)之間的時(shí)間,如果定時(shí)器輸出‘1,則表示在規(guī)定的超時(shí)時(shí)間內(nèi)沒(méi)有接收到正確的數(shù)據(jù),如果定時(shí)器輸出‘0,則表示沒(méi)有出現(xiàn)通訊錯(cuò)誤,每次發(fā)送指令時(shí)啟動(dòng)定時(shí)器T0,如果正確的接收到數(shù)據(jù),復(fù)位定時(shí)器T0后,再進(jìn)行下一指令的發(fā)送,保證定時(shí)器T0輸出為‘0。如果沒(méi)有接收到正確數(shù)據(jù),定時(shí)器輸出置位,此時(shí)做相應(yīng)的錯(cuò)誤處理程序后再準(zhǔn)備指令的重新發(fā)送。

      波特率選用9600bps,1個(gè)起始位,8個(gè)數(shù)據(jù)位,1個(gè)停止位,發(fā)送數(shù)據(jù)塊DB1,接收數(shù)據(jù)塊DB10,假設(shè)發(fā)送指令字節(jié)數(shù)4個(gè),接收最大字節(jié)數(shù)為40個(gè),所以超時(shí)時(shí)間應(yīng)大于:(1/9600)*(1+8+1)*(4+40)*1000=46ms,可設(shè)定超時(shí)時(shí)間為70ms。

      指令數(shù)據(jù)塊:在通訊模塊中,定義指令格式,采用字符數(shù)組形式,內(nèi)存分配如下表所示:

      (2)單片機(jī)通信程序設(shè)計(jì)。單片機(jī)C8051F021程序使用C語(yǔ)言編寫(xiě), RS485為半雙工模式,一般情況下將RS485芯片使能于接收狀態(tài),接收到指令后,開(kāi)始校驗(yàn),若正確,就將RS485芯片置位于發(fā)送狀態(tài),并將主機(jī)所需要的數(shù)據(jù)發(fā)送出去,發(fā)送結(jié)束后,再使其置位于接收狀態(tài)。通信程序采用中斷方式,從機(jī)默認(rèn)地址為01。

      4 結(jié)束語(yǔ)

      在點(diǎn)到點(diǎn)數(shù)據(jù)通訊系統(tǒng)設(shè)計(jì)中,采用SIMATIC S7-300和CP340通訊模塊與C8051F021單片機(jī)實(shí)現(xiàn)了ASCII碼協(xié)議通信,該方案結(jié)構(gòu)簡(jiǎn)單,投資少,運(yùn)行穩(wěn)定,傳輸距離遠(yuǎn),這使得PLC在工業(yè)在線(xiàn)檢測(cè)儀表主機(jī)的開(kāi)發(fā)中具有很高的應(yīng)用價(jià)值。

      參考文獻(xiàn):

      [1]任冠甲.SIMATIC STEP7梯形邏輯參考手冊(cè)[K].

      [2]S7300-400語(yǔ)句表(STL)編程手冊(cè)[K].

      [3]徐愛(ài)鈞,彭秀華.單片機(jī)高級(jí)語(yǔ)言C51應(yīng)用程序設(shè)計(jì)[M].電子工業(yè)出版社,2001.

      猜你喜歡
      字節(jié)指令通訊
      防止蚊子叮咬的新方法
      一樣,不一樣
      字節(jié)跳動(dòng)瞄準(zhǔn)教育等新業(yè)務(wù)
      《單一形狀固定循環(huán)指令G90車(chē)外圓仿真》教案設(shè)計(jì)
      新機(jī)研制中總裝裝配指令策劃研究
      國(guó)內(nèi)首個(gè)AR通訊應(yīng)用浮出水面
      國(guó)內(nèi)首個(gè)AR通訊應(yīng)用浮出水面
      浮瓶通訊
      人類(lèi)進(jìn)入“澤它時(shí)代”
      太空第一人
      寿宁县| 孙吴县| 称多县| 青海省| 密云县| 抚松县| 顺昌县| 镇宁| 英超| 衡东县| 大丰市| 大安市| 玛纳斯县| 东兴市| 高安市| 邯郸市| 教育| 夹江县| 突泉县| 旅游| 新干县| 化德县| 永宁县| 新绛县| 麦盖提县| 海兴县| 车险| 长寿区| 津南区| 洞头县| 重庆市| 三亚市| 平湖市| 二手房| 肥西县| 疏附县| 富川| 安康市| 古田县| 嵊泗县| 青田县|