<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設計應用 > 西門子S7-300 PLC與模擬屏串行通信

          西門子S7-300 PLC與模擬屏串行通信

          作者: 時間:2016-12-20 來源:網(wǎng)絡 收藏

          1 引言

            模擬屏能簡單、明了地反映現(xiàn)場的實時數(shù)據(jù)和狀態(tài)信息,應用十分廣泛。為了使現(xiàn)場信息及時、準確、動態(tài)地顯示在模擬屏上,要求數(shù)據(jù)采集設備和模擬屏之間進行通信。

            現(xiàn)場信息量比較大,如果每個信號都獨立連接到模擬屏,信號線數(shù)量多、耗線多,不經(jīng)濟,走線不便,故障率高,采用串行通信可克服以上缺點。

            現(xiàn)在通信方式多種多樣、速度越來越快,但串行通信在控制范疇一直占據(jù)著極其重要的地位。它不僅沒有因時代的進步而淘汰,反而在規(guī)格上越來越完善、應用越來越廣,長久不衰。

            與并行通信相比,它傳輸速度慢(并行一次傳8位,串行傳1位),但并行通信數(shù)據(jù)電壓傳輸過程中,容易因線路因素使標準電位發(fā)生變化(常見的電壓衰減、信號間互相串音干擾)。傳輸距離越遠,問題越嚴重、數(shù)據(jù)錯誤越容易發(fā)生。相比之下,串行通信處理的數(shù)據(jù)電壓只有一個標準電位,數(shù)據(jù)不易漏失。

            常用的串行通信有兩種,一種為rs232,另一種為rs422/485。工業(yè)環(huán)境常會有噪聲干擾傳輸線路,在用rs232進行數(shù)據(jù)傳輸時,經(jīng)常會受到外界電氣干擾而使信號發(fā)生錯誤。rs232串行通信的信號標準電位是參考接地端而來的,干擾信號在原始信號和地線上均會產(chǎn)生影響,原始信號加上干擾信號后,依然傳送到接收端,而地線部分的信號則不能傳送到接收端。因此,信號便發(fā)生了扭曲。rs422/485傳輸?shù)氖遣罘中盘?,在發(fā)送端分成正負兩部分,到達接收端通過相減,還原成原來信號,兩條信號線受到的干擾的程度相同,這就防止了噪聲干擾。本文以plc和模擬屏通信為例介紹通過rs485實現(xiàn)點對點串行通信。

          2 模擬屏的通信規(guī)約及設備

           ?。?) 通信規(guī)約

            rs232c/485串行口:速率9600bps,1位起始位,8位數(shù)據(jù)位,1位停止位,無奇偶校驗位;傳輸報文內(nèi)容以字節(jié)為單位,在信道中的傳送順序是:低字節(jié)先送,高字節(jié)后送;字節(jié)內(nèi)低位先送,高位后送;數(shù)據(jù)格式為16進制數(shù);異步通信。

            (2) 設備

            開關量處理器;開關量指示燈;模擬量處理器;模擬量顯示器;時鐘;通信處理器;中央控制器。

          3 信息傳輸途徑設備和功能

           ?。?) 途徑:數(shù)據(jù)采集通過plc完成,plc向模擬屏傳輸數(shù)據(jù),控制模擬屏狀態(tài)。rs485連接圖如圖1所示:

           ?。?) 主要相關設備:中央處理器cpu 314;點到點通信模塊cp341-rs422/485。

            (3) 功能:—向模擬屏發(fā)送模擬量數(shù)據(jù);—向模擬屏發(fā)送開關量信息;—控制屏狀態(tài),包括:全屏亮暗、全屏信號分合、

            變位幀閃光;—設定和改變時鐘時間。

          4 通信實現(xiàn)的方法

            4.1 初始化

            就串行通信而言,交換數(shù)據(jù)的雙方利用傳輸在線的電壓改變來達到數(shù)據(jù)交換的目的。如何從不斷改變的電壓狀態(tài)中解析出其中的信息,雙方必須有一套共同的譯碼方式,遵守一定的通信規(guī)則。這就是通信端口初始化。

            通信端口初始化有以下幾個項目必須設置或確認:

            (1) 通信模式

            串行通信分同步和異步兩種模式。同步傳輸在通信的兩端使用同步信號作為通信的依據(jù),異步傳輸則使用起始位和停止位作為通信的判斷。模擬屏通信模式:異步傳輸;西門子plc通信模式:異步傳輸;二者通信模式相同。

            (2) 數(shù)據(jù)的傳輸速率

            異步通信雙方并沒有一個可參考的同步時鐘作為基準。這樣雙方傳送的高低電位代表幾個位就不得而知了。要使雙方的數(shù)據(jù)讀取正常,就要考慮到傳輸速率。收發(fā)雙方通過傳輸在線的電壓改變來交換數(shù)據(jù),但發(fā)送端發(fā)送的電壓改變的速率必須和接收端的接受速率保持一致。模擬屏的通信速率:9600bps;西門子plc通信速率:600bps,1200bps,2400bps,4800bps,9600bps,19200bps,38400bps,57600bps,76800bps。初始化,將plc波特率設為:9600bps

            (3) 起始位及停止位

            當發(fā)送端準備發(fā)送數(shù)據(jù)時,會在所送出的字符前后分別加上高電位的起始位及低電位的停止位。接收端會因起始位的觸發(fā)而開始接收數(shù)據(jù),并因停止位的通知而確定數(shù)據(jù)的字符信號已經(jīng)結(jié)束。起始位固定為1位,而停止位則有1,1.5,2等多種選擇。模擬屏的停止位:1位;西門子plc的停止位:1位或2位。初始化,將plc數(shù)據(jù)停止位設為:1位。

           ?。?) 數(shù)據(jù)的發(fā)送單位

            不同的協(xié)議會用到不同的發(fā)送單位(歐美一般用8位、日本一般用7位組成一字節(jié)),使用幾位合成一字節(jié),雙方必須一致。模擬屏的數(shù)據(jù)發(fā)送單位:8位為一字節(jié);西門子plc的數(shù)據(jù)發(fā)送單位:7位或8位為一字節(jié)。初始化,將plc數(shù)據(jù)發(fā)送單位設為:8位。

           ?。?) 校驗位的檢查

            為了預防錯誤的產(chǎn)生,使用校驗位作為檢查的機制。校驗位是用來檢查所發(fā)送數(shù)據(jù)正確性的一種校對碼,它分奇偶校驗,也可無校驗。模擬屏校驗位:none;西門子plc校驗位:none,odd,even;初始化,將plc校驗位設為:none。

           ?。?) 工作模式

            交換數(shù)據(jù)是通過一定的通信線路來實現(xiàn)的。微機在進行數(shù)據(jù)的發(fā)送和接收時通信線路上的數(shù)據(jù)流動方式有三種:單工、半雙工、全雙工。rs232和rs422使用全雙工模式,rs485使用半雙工模式。模擬屏工作模式:rs232全雙工/rs485半雙工;西門子plc工作模式:rk512全雙工四線制(rs422);3964r全雙工四線制(rs422);ascii全雙工四線制(rs422);ascii半雙工兩線制(rs485);初始化,將plc工作模式設為:ascii半雙工兩線制(rs485)。

           ?。?) 數(shù)據(jù)流控制—握手

            傳輸工作進行時,發(fā)送速度若大于接收速度,而接收端的cpu處理速度不夠快時,接收緩沖區(qū)就會在一定時間后溢滿,造成后來發(fā)送過來的數(shù)據(jù)無法進入緩沖區(qū)而漏失。采用數(shù)據(jù)流控制,就是為了保證傳輸雙方能正確地發(fā)送和接收數(shù)據(jù),而不會漏失。數(shù)據(jù)流控制一般稱為握手,握手分為硬件握手和軟件握手。模擬屏數(shù)據(jù)流控制:none;西門子plc數(shù)據(jù)流控制:none。要通過用戶程序詢問和控制。

           ?。?) 錯誤預防—校驗碼

            在傳輸?shù)倪^程中,數(shù)據(jù)有可能受到干擾而使原來的數(shù)據(jù)信號發(fā)生扭曲。為了監(jiān)測數(shù)據(jù)在發(fā)送過程中的錯誤,必須對數(shù)據(jù)作進一步的確認工作,最簡單的方式就是使用校驗碼。模擬屏校驗碼:異或校驗和。要在plc上編校驗碼程序。


          上一頁 1 2 下一頁

          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();