久久久91-久久久91精品国产一区二区-久久久91精品国产一区二区三区-久久久999国产精品-久久久999久久久精品

ABB
關注中國自動化產業發展的先行者!
CAIAC 2025
2025工業安全大會
OICT公益講堂
當前位置:首頁 >> 案例 >> 案例首頁

案例頻道

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

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

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

    現在通信方式多種多樣、速度越來越快,但串行通信在控制范疇一直占據著極其重要的地位。它不僅沒有因時代的進步而淘汰,反而在規格上越來越完善、應用越來越廣,長久不衰。與并行通信相比,它傳輸速度慢(并行一次傳8位,串行傳1位),但并行通信數據電壓傳輸過程中,容易因線路因素使標準電位發生變化(常見的電壓衰減、信號間互相串音干擾)。傳輸距離越遠,問題越嚴重、數據錯誤越容易發生。相比之下,串行通信處理的數據電壓只有一個標準電位,數據不易漏失。
    
    常用的串行通信有兩種,一種為rs232,另一種為rs422/485。工業環境常會有噪聲干擾傳輸線路,在用rs232進行數據傳輸時,經常會受到外界電氣干擾而使信號發生錯誤。rs232串行通信的信號標準電位是參考接地端而來的,干擾信號在原始信號和地線上均會產生影響,原始信號加上干擾信號后,依然傳送到接收端,而地線部分的信號則不能傳送到接收端。因此,信號便發生了扭曲。rs422/485傳輸的是差分信號,在發送端分成正負兩部分,到達接收端通過相減,還原成原來信號,兩條信號線受到的干擾的程度相同,這就防止了噪聲干擾。本文以plc和模擬屏通信為例介紹通過rs485實現點對點串行通信。

2  模擬屏的通信規約及設備

(1) 通信規約

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

(2) 設備

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

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

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


圖1     rs485連接電纜圖

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

    (3) 功能:—向模擬屏發送模擬量數據;—向模擬屏發送開關量信息;—控制屏狀態,包括:全屏亮暗、全屏信號分合、 變位幀閃光;—設定和改變時鐘時間。

4  通信實現的方法

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

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

(1) 通信模式

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

(2) 數據的傳輸速率

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

(3) 起始位及停止位

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

(4) 數據的發送單位

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

(5) 校驗位的檢查

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

(6) 工作模式

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

(7) 數據流控制—握手

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

(8) 錯誤預防—校驗碼

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

4.2  數據發送

    (1) 將同步字及測量值db36.dbw21開始的數據送到db42.dbw12開始的數據區去,為向串口發送做準備。程序如下:
遙測第一幀(fc36)

    l  w#16#eb90 

    傳送兩次同步字eb90,分別給db42.dbw12和db42.dbw14

    t  db42.dbw12     

    l  w#16#eb90     

    t  db42.dbw14   

    l  b#16#61         

    //將報文類型字“61”送給db42.dbb16

    t  db42.dbb16  

    l  w#16#100        

    //第一幀將起始地址“0100”送給db42.dbw17

    t  db42.dbw17   

    //第二幀將起始地址“0120”送給db42.dbw17

    l  w#16#40         

    //將正文字節數“40”(64字節)送給db42.dbw19

    t  db42.dbw19      

    l  db36.dbw21        

    //第一幀將db36.dbw21開始的32個字的模擬量

    caw 送到db42.dbw21開始的區域

    t  db42.dbw21      

    l  db36.dbw23      

    caw                

    t  db42.dbw23      

    …………………   

    l  db36.dbw83      

    caw                

    t  db42.dbw83      

    opn  db42            //遙信校驗

    l  p#17.0            //第二幀與第一幀相同

    t  md100

    l  dbw[md100]

    t  mw10

    l  33

    t  mw16

    l  mw16

    next: t  mw12

    l  m

    d100

    l  p#2.0

    +d

    t  md100

    l  dbw[md100]

    l  mw10

    xow

    t  mw10

    l  mw12

    loop  next

    l  md100

    l  p#2.0

    +d

    t  md100

    l  mw10

    t  mw14

    l  mw14

    slw  8

    t  dbw[md100]

    l  mw10

    aw  w#16#ff00

    t  mw10

    l  mw10

    l  dbw[md100]

    xow

    t  dbw[md100]

    l  dbw16

    t  mw18

    l  mw18

    aw  w#16#ff00

    t  mw18

    l  mw18

    l  dbw[md100]

    xow

    t  dbw[md100]

    (2) 將db42.dbw12開始,長度為95個字的數據送到串行端口,程序如下:

    //supply  laddr, db_no,dbb_no,len

    l  256                     // laddr

    t  db40.dbw2

    l  42                      // db_no

    t  db40.dbw4

    t  db42.dbw4

    l  12                      // dbb_no

    t  db40.dbw6

    t  db42.dbw6

    l  95                      // len

    t  db40.dbw8

    t  db42.dbw8

    //send  with  instance-db

    call  fb8  ,  db21

    sf        :=’s’

    req      :=db40.dbx0.0

    r         :=db40.dbx0.1

    laddr   :=db40.dbw2

    db_no   :=db40.dbw4

    dbb_no  :=db40.dbw6

    len      :=db40.dbw8

    r_cpu_no:=

    r_typ    :=

    r_no     :=

    r_offset :=

    r_cf_byt :=

    r_cf_bit :=

    done    :=db40.dbx0.4

    error   :=db40.dbx0.5

    status   :=db40.dbw12

    // generate  edge  p_snd_rk_req

    an  db40.dbx0.0   // p_snd_rk_req

    s  db40.dbx0.0  

    // set  p_snd_rk_req

    o  db40.dbx0.4   // p_snd_rk_done

    o  db40.dbx0.5  // p_snd_rk_error

    r  db40.dbx0.0  // p_snd_rk_req

    // check  “complete  without  error”

    an  db40.dbx0.4           

    // check  p_snd_rk_done  if  p_snd_rk_done  equals 0,

    jc  cher    

    // jump to cher and check  p_snd_rk_error

    //”complete without error”

    // p_snd_rk_done=1

    l  db42.dbw0 

    //“complete  without  error”

    +1  // increment  counter

    t  db42.dbw0

    nop //further  user  function

    nop

    nop

    be

    // check  “complete  with  error”

    // p_snd_rk_error=1

    cher: an  db40.dbx0.5          

    //check  p_snd_rk_error

    bec //if no error occurred, jump to end

    //“complete  with  error”

    l  db42.dbw2 

    //“complete  with  error”

    +1   //increment  counter

    t  db42.dbw2

    l  db40.dbw12

    t  db40.dbw14 //save  status

    nop   //error-handling

    nop

    nop

    be

    (3) 數據刷新,程序如下:

    an  m2.4

    l    s5t#100ms

    sd  t0

    a   t0

    jnb  _007

    l    w#16#1

    l    md4

    rrd

    t    md4

    set

    save

    clr

    _007: a  br

    =   l20.0

    a   l20.0

    a(

    l  md4

    l  l#0

    ==d

    )

    jnb   _008

    l    1

    t    md4

    _008: nop 0

    a    l20.0

    bld  102

    = m2.4

    a(

    o  m5.0

    o  m6.4

    )

    jnb  _003

    call  fc36

    _003: nop 0

    a(

    o  m4.0

    o  m5.4

    )

    jnb  _004

    call  fc38

    _004: nop 0

熱點新聞

推薦產品

x
  • 在線反饋
1.我有以下需求:



2.詳細的需求:
姓名:
單位:
電話:
郵件:
主站蜘蛛池模板: 欧美精品一二三区 | 亚洲成人偷拍自拍 | 久久婷婷六月 | 亚洲作爱视频 | 欧美一级毛片欧美一级成人毛片 | 亚洲欧美久久精品一区 | 成人欧美一区二区三区白人 | 99国产精品欧美久久久久久影院 | 欧美毛片a级毛片免费观 | 亚洲精品在线观看视频 | 成人在线激情网 | 1024免费福利永久观看网站 | 丁香婷婷激情综合 | 永久免费毛片在线播放 | 国产亚洲精品自在久久77 | 欧洲欧美成人免费大片 | julia一区二区三区中文字幕 | 精品国产女同疯狂摩擦2 | 国产在热线精品视频国产一二 | 国产成人夜色影视视频 | 人人爱国产 | 中文无码日韩欧 | 真实男女xx00动态视频免费 | 香蕉大久久 | 久草黄色 | 国产chinese在线视频 | 婷婷国产成人久久精品激情 | 在线观看激情偷拍视频 | 天天色综合色 | 成人国产亚洲欧美成人综合网 | 在线国产欧美 | 免费毛片在线视频 | 亚洲另类视频 | 亚洲欧美日韩精品高清 | 特别黄的免费视频大片 | 在线视频观看免费视频18 | 中文精品久久久久国产网址 | 国产精品久久久久久 | 香蕉在线观看视频 | 亚洲精品123区在线观看 | 国产精品天天看特色大片不卡 |