• 服務電話:
    15221406036
    產品展示
    首頁 > 產品展示 > 西門子 > 西門子S7-300 > 6ES7317-2EK14-0AB0安裝調試

    6ES7317-2EK14-0AB0安裝調試

    產品簡介:6ES7317-2EK14-0AB0安裝調試
    儀表及其數據通訊協議
      這臺工業用八通道實時檢測儀表,最多可同時接八路高精度位移傳感器,用于測量多點微小形變或微量位移,儀表測量精度為0.01毫米,測量范圍最大值為50毫米。該儀表帶有一個9針的RS-232C串口,能與微機進行串口數據通訊,實時傳送檢測數據,通過微機軟件處理可實現工業實時監控。
      該儀表的串口數據通訊協議是:數據傳輸速率為960

    更新時間:2023-02-08
    瀏覽次數:1230
    廠商性質:代理商
    詳情介紹
    品牌Siemens/西門子應用領域化工,電子,電氣
    產地德國品牌西門子

    6ES7317-2EK14-0AB0安裝調試

    本系統采用貝加萊PCC以及德國倫茨82EV變頻器設計實現,根據系統的工作可靠性要求,按照冗余化結構設計,兩套系統軟硬件對稱獨立,工作時互為主、備用關系,兩套PCC保持相互間在線的同步數據交換,當主用系統出現故障時,備用系統可自動切入工作。該雙機熱備控制系統主備工作切換速度快,整個伺服系統工作平穩無擾動。

        目前業內雖然已有成熟的雙機熱備PLC控制系統方案,但均采用了較為“龐大"的體系設計,不僅成本很高,且體積結構笨重,工作效率亦不高。我公司研制的基于中小型PCC的雙機熱備控制系統恰好這方面的不足,系統主要特點如下:

    1) 采用PCC的標準軟硬件模塊實現,系統設計標準,且結構開放。
    2) 成本低廉,體積緊湊,適用于小型化的系統設計要求
    3) 同樣一套雙機熱備軟件可以兼容小型PCC 2003和中型PCC 2005兩種不同規格的硬件。
    4) 可以支持2套PCC驅動1套I/O的“Y型"工作模式,亦可支持2套PCC驅動2套獨立的I/O的“H型"工作模式。然而,目前業內的雙機熱備PLC控制系統均只對“Y型"工作模式提供了支持。
    5) 主備PCC切換速度為數十毫秒。
    6ES7317-2EK14-0AB0安裝調試

    1.前言 
      實時數據采集系統過去在DOS操作系統下一般是采用匯編語言開發制作。隨著bbbbbbs操作系統的普及應用,數據采集及工業控制等軟件的開發也上升到 bbbbbbs環境下??梢暬浖_發平臺的出現,為軟件開發提供了強大的圖形界面功能,使得開發出來的各種應用軟件具有良好的人機交互功能。匯編語言的特點是功能強、運行速度快,但編程復雜、調試難,而高級語言具有良好的可讀性及方便的調試手段。 
      Visual Basic 是bbbbbbs環境下簡單、易學、高效的可視化編程語言開發系統,以其所見即所得的可視化界面設計風格和32位面向對象的程序設計等特點,已廣泛地應用于各個領域,是很多計算機軟件開發人員采用的開發工具。VB不但提供了良好的界面設計能力,而且在微機串口通信方面也有很強的功能。采用 VB開發Winodws下的數據采集和工業控制應用軟件十分方便,尤其軟件界面設計非常便捷,編程工作量較小,開發周期短,特別適合非計算機專業的工程技術人員掌握和使用。 
      2.MSComm控件特點 
      MSComm控件是Microsoft提供的擴展控件,用于支持 VB程序對串口的訪問,該控制“隱藏"了大部分串口通訊的底層運行過程和許多煩瑣的處理過程,同時支持查詢方法和事件驅動通訊的機制,事件驅動通訊是交互方式處理串口事務的一種非常有效的方法,特別適合 bbbbbbs程序的編寫。在串口通訊過程中,當發送數據、收到數據或產生傳輸錯誤時,觸發MSComm控件的OnComm事件,然后可以通過判斷 CommEvent屬性值獲得事件類型,再根據事件類型進行相應數據處理。因此用其實現微機串口的數據通訊相當簡單,以很少的程序代碼就可以輕松實現串口的訪問和數據通訊。 
      3.實時數據采集示例程序 
      下面給出的應用實例,通過對一臺工業八通道實時檢測儀表數據通訊協議進行分析,利用VB6.0開發微機通過串口對多通道工業儀表進行實時數據采集的編程技術。給出的程序代碼具有通用性,并有詳示,可以直接或稍加改動后用于其它數據采集或實時控制程序中。 
      3.1 儀表及其數據通訊協議 
      這臺工業用八通道實時檢測儀表,最多可同時接八路高精度位移傳感器,用于測量多點微小形變或微量位移,儀表測量精度為0.01毫米,測量范圍最大值為50毫米。該儀表帶有一個9針的RS-232C串口,能與微機進行串口數據通訊,實時傳送檢測數據,通過微機軟件處理可實現工業實時監控。 
      該儀表的串口數據通訊協議是:數據傳輸速率為9600bps,1位開始位,8位數據位,1位停止位,無奇偶校驗位。儀表每秒通過串口發送200個字節數據,由于接入的位移傳感器數量在 1-8路可調,所以發送的每幀數據長度不定長,隨傳感器數量多少而變化。儀表數據傳輸首先發送每幀數據的開始標志字節,該字節定義為二進制常數0FAH;然后發送1個字節的通道狀態字節,該字節按位順序每位代表相應的一路通道狀態,某位是1則代表該通道接有位移傳感器,某位是0則代表該通道未接位移傳感器;從第三個字節開始按位移傳感器接通的通道順序發送采集數據字節,每道數據有三個字節,前2個數據字節采用壓縮的BCD碼編碼方式,第1個數據字節是高位,第2個數據字節是低位,即一個字節表示兩位十進制數,則兩個字節表示四位十進制數,小數點采用固定形式,定義在兩字節中間;第3個數據字節為符號字節,該字節第八位為1,即1xxxxxxx則為負數,第八位為0,即0xxxxxxx則為正數。 
      例如發送的字節數據為:0FAH 0B1H 26H 87H 8H 34H 62H 00H 37H 76H 0H 42H 53H 80H 
      0FAH為幀開始標志字節,第一道,第五道,第六道,第八道接有位移傳感器,表示 -26.87 34.62 37.76 -42.53。 
      3.2 部分參數的技術分析 
      3.2.1 儀表通訊傳輸速率為9600bps,則最快速度為1.0417ms發送一個字節;儀表每秒發送200個字節,平均5.0ms發送一個字節,在查詢方式或連續讀取串口數據時要在程序中添加循環等待程序,等待接收緩沖區收到足夠的字節才能進行數據處理。 
      3.2.2 儀表發送每幀數據長度不定長,為了實現實時監測功能,接收數據的讀取要盡可能的快速,則在程序開始運行時設置MSComm1的屬性 
      RThreshold = 26 接收緩沖區收到26個字節產生OnComm事件 
      bbbbbLen = 1 bbbbb每次讀取一個字節 
      等到程序接收到一幀完整數據后,計算出當前幀數據長度,再將Rthreshold屬性修改為幀長度,則接收緩沖區在收到一幀數據后,MSComm控件才會觸發一個OnComm事件,這樣就會有更多的時間進行數據的計算和處理。 
      3.2.3 儀表每秒發送200個字節數據,微機收到一完整幀數據至少需要t(ms)時間(只接一道傳感器t=25ms;接八道傳感器t=130ms),然后再進行數據處理。如果微機在下一幀數據接收前即t ms內能將數據計算處理完畢,則接收緩沖區內只會保存有一幀數據,不會存有兩幀以上數據,接收緩沖區的大小不會影響實時監測效果(接收緩沖區>=一完整幀長度),這時可以實現實時監測或實時控制;如果微機在t ms內不能將數據計算處理完畢,接收緩沖區設置的又很大,在數據計算處理完畢前,接收緩沖區內就會保存有兩幀以上數據,而且一次工作時間越長,緩沖區內滯留數據幀就越多,數據采集和數據處理之間產生逐漸增大的額外時間差,當接收緩沖區充滿后,時間差不再增大,固定在某一值,部分數據因不能及時采集到接收緩沖區中,數據產生丟失現象,真實工作情況就會和微機處理結果產生較大的時間差,對實時監測和實時控制很不利,這種情況下接收緩沖區的大小就會影響實時監測效果,所以接收緩沖區設置不能過大,讓部分數據丟失,以保證數據處理的實時性。 
      3.2.4 設置MSComm控件的接收數據模式采用二進制方式,即 bbbbbMode=combbbbbModeBinary,但用bbbbb屬性讀取數據時,不能直接賦值給 Byte 類型變量,只能通過先賦值給一個 Variant 類型變量,返回一個二進制數據的數組,再轉換保存到Byte類型數變量中。 
      3.2.5 VB中有 Byte類型變量,但沒有字節的位處理語句。通道狀態字節的位處理要通過對該字節的值運算進行判斷,符號字節的位處理則要判斷符號字節的值是否大于127,大于127則為負數;壓縮的BCD碼存入Byte類型變量,VB系統只按十進制數處理,這要通過一個簡單算法換算,解壓BCD碼才能還原成十進制表示數值。假如a是Byte類型變量,W是Single類型變量,將一個壓縮的BCD碼存入 a中,則算法是: 
     ?。?(a\16)*10 + a-(a\16)*16 
      則W=a-(a\16)*6 
      3.3 程序代碼 
      在(通用)(聲明)中定義程序所用變量: 
      Dim ab(4) As Byte 注釋:字節數據類型數組,用來存貯接收到的一組字節數據 
      Dim av As Variant 注釋:用來從接收緩沖區讀取數據 
      Dim i As Integer 
      Dim j As Integer 
      Dim w As Integer 注釋:接收數據個數計數器 
      Dim b1 As Single 
      Dim b2 As Single 
      Dim WW As Single 注釋:十進制檢測值 
      Dim TD(8) as Boolean 注釋:通道狀態數組 
      Dim Wmax(8) As Single 注釋:最大值數組 
      Dim Wmin(8) As Single 注釋:最小值數組 
      在窗體中添加名為Command1的[開始]按鈕和名為MSComm1的MSComm控件。 
      [開始]按鈕的Click事件處理程序主要是對MSComm1控制的參數初始化設置,程序中大部分參數在設計時可在MSComm1控制的屬性窗口中設置:

    Private Sub Command1_Click() 注釋:開始按鈕 
    With MSComm1 

       .Setting="9600,N,8,1" 注釋:設置通信口參數 
       .InBufferSize=40 注釋:設置MSComm1接收緩沖區為40字節 
       .OutBufferSize=2 注釋:設置MSComm1發送緩沖區為2字節 
       .bbbbbMode = combbbbbModeBinary  注釋:設置接收數據模式為二進制形式 
       .bbbbbLen = 1           注釋:設置bbbbb 一次從接收緩沖讀取字節數為1 
       .SThreshold = 1 注釋:設置Output 一次從發送緩沖讀取字節數為1 
       .InBufferCount = 0 注釋:清除接收緩沖區 
       .OutBufferCount = 0 注釋:清除發送緩沖區 
       For i=1 to 8 
       Wmax(i) = -99 注釋:最大值賦初值 
       Wmin(i) = 99 注釋:最小值賦初值 
       Next i 
       w = 0 注釋:數據個數計數器清零 
       .RThreshold = 1 注釋:設置接收一個字節產生OnComm事件 
       On Error Resume Next       注釋:改變錯誤處理的方式。 
       Err.bbbbb 
       If .PortOpen = False Then 注釋:判斷通信口是否打開 
        .PortOpen = True 注釋:打開通信口 
        If Err Then 注釋:錯誤處理 
         MsgBox "串口通信無效" 
         Exit Sub 
        End If 
       End If 
    End With 
    End Sub 
      為了達到實時數據采集目的,實時數據采集處理程序采用MSComm事件驅動方式。MSComm1_OnComm 的事件處理程序只處理comEvReceive事件,首先判斷幀數據的開始字節,關閉OnComm接收事件,然后接收數據字節,將壓縮BCD進行還原轉換,再接收符號字節,判斷數據符號,判斷數據最大最小值,最后打開OnComm接收事件,等待下一次OnComm事件產生: 
    Private Sub MSComm1_OnComm() 
    With MSComm1 

      Case comEvReceive 注釋:收到Rthreshold個字節產生的接收事件 
       av = .bbbbb 注釋:讀取一個接收字節 
       ab(1) = av(0) 注釋:轉換保存到字節數據類型數組 
       If ab(1) = 170 Then 注釋:判斷是否為數據開始標志,0FAH=170 
         .RThreshold = 0 注釋:關閉OnComm事件接收 
         W=W+1     注釋:計數器加1 
         av = .bbbbb 注釋:讀取通道狀態字節 
         ab(0) = av(0) 注釋:轉換保存到字節數據類型數 
         For i = 1 To 8 注釋:通道狀態數組復位 
         TD(i) = False 
         Next i 
         cn = 2           注釋:幀長度賦初值,一個開始字,一個狀態字 
         If ab(0) >= 128 Then    注釋:判斷第八通狀態 
         TD(8) = True       注釋:第八道是真 
         ab(0) = ab(0) - 128   注釋:第7位置零 
         cn = cn + 3       注釋:幀長度加3個字節 
         End If 
         If ab(0) >= 64 Then     注釋:判斷第七通狀態 
         TD(7) = True       注釋:第七道是真 
         ab(0) = ab(0) - 64    注釋:第6位置零 
         cn = cn + 3       注釋:幀長度加3個字節 
         End If 
         If ab(0) >= 32 Then     注釋:判斷第六通狀態 
         TD(6) = True       注釋:第六道是真 
         ab(0) = ab(0) - 32    注釋:第5位置零 
         cn = cn + 3       注釋:幀長度加3個字節 
         End If 
         If ab(0) >= 16 Then     注釋:判斷第五通狀態 
         TD(5) = True       注釋:第五道是真 
         ab(0) = ab(0) - 16    注釋:第4位置零 
         cn = cn + 3       注釋:幀長度加3個字節 
         End If 
         If ab(0) >= 8 Then     注釋:判斷第四通狀態 
         TD(4) = True       注釋:第四道是真 
         ab(0) = ab(0) - 8     注釋:第3位置零 
         cn = cn + 3       注釋:幀長度加3個字節 
         End If 
         If ab(0) >= 4 Then     注釋:判斷第三通狀態 
         TD(3) = True       注釋:第三道是真 
         ab(0) = ab(0) - 4     注釋:第2位置零 
         cn = cn + 3       注釋:幀長度加3個字節 
         End If 
         If ab(0) >= 2 Then     注釋:判斷第二通狀態 
         TD(2) = True       注釋:第二道是真 
         ab(0) = ab(0) - 2     注釋:第0位置零 
         cn = cn + 3       注釋:幀長度加3個字節 
         End If 
         If ab(0) >= 1 Then     注釋:判斷第一通狀態 
         TD(1) = True       注釋:第一道是真 
         cn = cn + 3       注釋:幀長度加3個字節 
         End If 
         For i = 1 To 8 注釋: 
         If TD(i) = True Then 
          av = .bbbbb    注釋:讀取第一個數據字節(BCD碼高位字節) 
          ab(2) = av(0)    注釋:轉換保存到字節數據類型數組 
          av = .bbbbb    注釋:讀取第二個數據字節(BCD碼低位字節) 
          ab(3) = av(0)    注釋:轉換保存到字節數據類型數組 
          av = .bbbbb    注釋:讀取第三個接收字節(符號位字節) 
          ab(4) = av(0)    注釋:轉換保存到字節數據類型數組 
          b1 = ab(2) - 6 * (ab(2) \ 16)   注釋:高位字節壓縮BCD碼轉換為實數 
          b2 = ab(3) - 6 * (ab(3) \ 16)   注釋:低位字節壓縮BCD碼轉換為實數 
          WW = b2 + b1 / 100 注釋:數值組合,標定小數點 
          If ab(4) > 127 Then WW = -WW 注釋:判斷數據符號位 
          Label1(i-1) = bbbbat(WW,"0.00")   注釋:顯示毫米單位數值,2位小數 
          If WW>Wmax(i) And WW<51 Then     注釋:判斷最大值,儀表在剛開始工作時有干擾,會傳導一些亂碼,位移傳感器有參數差,最大值一般都略大于50毫米,所以取51為極限最大值,取-51為極限最小值。 
           Wmax(i) = WW 
           Label2(i-1)=bbbbat(Wmax(i),"0.00") 注釋:顯示最大值 
          End If 
          If WW < Wmin(i) And WW > -51 Then 注釋:判斷最小值 
           Wmin(i) = WW 
           Label3(i-1)=bbbbat(Wmin(i),"0.00") 注釋:顯示最小值 
          End If 
         End If 
         Next i 
        .RThreshold = cn 注釋:打開MSComm1事件接收 
       Else 
        .RThreshold = 1 
       End If 
      Case Else 
    End Select 
    End With 
    End Sub


    留言框

    • 產品:

    • 您的單位:

    • 您的姓名:

    • 聯系電話:

    • 常用郵箱:

    • 省份:

    • 詳細地址:

    • 補充說明:

    • 驗證碼:

      請輸入計算結果(填寫阿拉伯數字),如:三加四=7
    97热久久精品中文字幕一区-97在线视频人妻无码-久久精品道一区二区三区-欧美老妇人XXXXX视频在线