<object id="ir2le"></object>
  • 加入收藏 在線留言 聯系我們
    關注微信
    手機掃一掃 立刻聯系商家
    全國服務熱線15267534595
    公司新聞
    西門子PLC案例詳|西門子200SMATR 如何減少流量累計誤差
    發布時間: 2024-03-07 20:55 更新時間: 2024-12-27 09:10

    一、流程描述

    1. 一個200SMART模擬量輸入模塊采集流量瞬時值,通過模擬量轉換指令轉換為工程量;

    2. 初始化相關變量地址并啟用定時器中斷;

    3. 中斷程序內實現流量累計計算; 

    4. 累積到一定值后,復位清空所有數據,重新開始累計。

    二、硬件設備

    1. 西門子PLC :S7-200SMART CPUSR30 6ES7 288-1SR30-0AA1;

    2. 模擬量輸入模塊:EMAE04(4AI)6ES7 288-1AE04-0AA0。

    三、軟件

    西門子200SMART plc編程軟件:STEP7-MicroWIN SMART V2.7版。

    四、地址分配

    V區地址

    注釋

    其它地址

    注釋

    VD0

    工程瞬時值

    M0.0

    工程量轉換允許信號

    VD4

    流量/每分鐘

    M0.1

    復位信號

    VD8

    流量整數部分

    AIW16

    模擬量通道

    VD12

    流量小數部分



    VD100

    整數和



    VD104

    小數和



    VD108

    累積和



    五、程序思路及編寫

    1. 因有的十進制小數轉化為二進制存儲時會無限循環,而200SMART只能存儲23位單精度浮點數的小數位,當前一個累積值比較大,而現時流量瞬時值較小時,兩者相加會因舍棄小數值造成誤差,累積次數越多,誤差越大。為減小誤差,可采用將采集的瞬時值分解成整數和小數兩部分,整數部分相加,小數部分相加,兩者的和再相加即為累積值,這樣可極大的減小累積誤差。

     

     

    2. 首先調用模擬量轉換指令將采集到的模擬量通道值轉換為實際工程值,假設工程值的上下限分別為0.0、50.0,如圖1所示:

     

    圖1

    3. 接下來調用初始化指令,目的是每200MS采集一次瞬時流量值,因此需要建立定時中斷,還需清空所有存儲數據的變量地址,如圖2所示:

     

    圖2

    4. 在定時中斷程序中做數據的處理,先將瞬時流量分解為整數和小數,然后整數與前一次的整數累計和相加,小數和前一次的小數累積和相加,再將兩者的和相加即為當前流量的累積值,需注意整數即整數和也需轉化為浮點數,以便于和小數和相加,如圖3所示:

     

    圖3

    5. 為不使累積值超出變量地址的存儲范圍,過一段時間后需將存儲數據的地址清零,再從頭開始累計,具體時間可根據現場實際要求而定,如圖4所示:

     

    圖4


    聯系方式

    • 電  話:18126392341
    • 聯系人:梁濤
    • 手  機:15267534595
    • 微  信:15267534595