回覆列表
  • 1 # 小心有電

    你看一下變送器的量程是0-100的,還是0-50的?如果是100的,那1度對應的數字量就是256,x度就是AIWO/256是沒問題的。轉過彎來後,其實你用模擬量轉換庫就行。

  • 2 # Talk工控白

    熱電阻輸出的是電阻值,又因為零度的時候剛好一百歐姆,所以實際測量的溫度阻值是大於100歐姆,那麼就要把這一百歐姆的值減去在進行除法處理。

    根據上圖程式設計,只要在除法器上面再用過減法器運算,就可以使溫度顯示正常。第一,把現場的電阻值從整數轉換為雙整數。第二,再把雙整數值轉換為實數。第三,用減法器計算插入你除法器的上面作為整個過程的第三步。,輸入實數在減去100,然後輸出實數。第四,用除法器計算,用256去除減法器輸出實數,除法器的第一輸入端寫256,第二輸入端是減法器過來的實數。然後減法器輸出的值就是實際溫度值。

  • 3 # 劍指工控

    首先可以肯定的告訴你,你的程式是錯誤的。為什麼呢?

    第一,從你提供的EM231模組的型號EM231 AI4×12Bit 231-0HC22-0XA8來看這是一個4路模擬量輸入模組,而非RTD模組。從圖中可以看到,這個模組的輸入訊號是電壓訊號和電流訊號,而非RTD訊號,所以他的工程量溫度換算程式是不同的。

    第二,確認了模組,需要對模組進行DIP開關的設定,需要選擇電流模式

    從圖中可以確認DIP開關應該為ON/ON/OFF,這個不能選擇錯誤

    第三,就是編寫程式,從你提供的程式看是錯誤的。對於S7-200的PLC,4mA電流對應A/D轉化後的整數值為6400,20mA對應的整數值為32000,那麼需要將整數值轉為實數型別的工程值即攝氏度。公式為:

    Ov = [(Osh - Osl)*(Iv - Isl)/(Ish - Isl)] + Osl

    其中:

    Ov: 換算結果

    Iv: 換算物件

    Osh: 換算結果的高限

    Osl: 換算結果的低限

    Ish: 換算物件的高限

    Isl: 換算物件的低限

    那麼Iv對應AIW14,Osh對應100,Osl對應0,Ish對應32000,Isl對應6400

    Ov = 100*(AIW14-6400)/ (32000-6400)+0

    Ov得到的結果就是實際的溫度值。

    第四,對簡單的量程轉換方法,就是使用庫檔案,Scale_I_to_R,這個指令庫可以網路搜尋得到,或者關注我後,發私信給我,註明需要的指令庫,這個指令庫比較簡單,如果是簡單使用沒有問題,但是它沒有考慮小訊號切除,訊號波動,報警輸出等都可以自己整合到這個庫程式。

    以上就是個人在實際工程中用到的一些程式和經驗,分享給大家。

    編寫程式時,確認需要充分認識你所使用的硬體引數,不能盲目程式設計。

  • 中秋節和大豐收的關聯?
  • 和老公很少聊天,話題不多,他是怎麼想的,每次都是我找話題?