回覆列表
  • 1 # 工控人

    急求三菱fx3g的plc沒有計算三角函式的指令,如何解決

    三菱fx3g系列的plc是不支援三角函式指令的如正弦(SIN)、餘弦(COS)、正切(TAN)以及反三角函式指令,這需要3U系列的才支援,這些指令是計算弧度(RAD)的,因此需要把角度數值轉換為弧度值才能用三角指令,而且指令中的數值都是浮點數。那3g中不支援如何實現,除了更換plc外我們可以採用如下方向實現:

    按照三角函式數值對照表,把所有的角度和結果輸入到程式中,用到哪個角度就呼叫對應的數值即可,這是最笨的方法,如果要求計算的角度不多的可以採用。按照三角函式的泰勒級數展開式編寫子程式:忽略最後的高階無窮小專案,我們在plc的梯形圖中按照加減乘除的四項執行就能簡單計算出函式值,如下圖中計算正弦函式的sin值,首先把角度轉換為弧度值,按照上述的式子計算,45°的結果為0.705,誤差還是有的,如果要求精度不高的話可以採用此方法。第三種方式就是如果與觸控式螢幕通訊,我們可以使用宏指令中內建函式庫中的數學運算函式進行計算,首先就是把我們的plc的角度值傳輸到觸控式螢幕的資料暫存器中,計算完成結果再傳到plc中,下面是威綸通觸控式螢幕用宏指令編寫三角函式的:

    macro_command main()

    float a,b //定義兩個浮點數a和吧

    GetData(a,"Mitsubishi FX3U/FX3G",D,0,1) //獲取plc上的角度值D0並賦值給a

    SIN(a,b)//計算出其sin值儲存到b中

    SetData(b,"Mitsubishi FX3U/FX3G",D,10,1)//把結果再回傳到plc上的D10中

    end macro_command

  • 2 # 工控程式設計

    三菱fx3g不支援三角函式指令。

    三菱PLC某些型號是不支援三角函式指令的。

    FX3系列的程式設計手冊有介紹三角函式指令的使用,

    但建立FX3G程式時,在程式設計軟體裡卻不能輸入三角函式指令,如SIN。

    因為只有FX3U,FX3UC才支援,如下圖,為程式設計手冊對三角函式Sin的介紹。

    僅支援FX3U,FX3UC

    如何解決?

    1.透過觸控式螢幕的三角函式間接實現。

    一般裝置都會配合人機介面進行設計,所以可以透過觸控式螢幕的宏指令間接實現。

    在屏裡面讀取三菱PLC的角度資料,

    呼叫屏的三角函式,如sin進行資料轉換,

    將轉換的結果再傳回PLC。

    下面是在威綸屏裡,透過宏指令實現的效果。

    對應宏指令程式碼為

    macro_command main()

    bool bON=true

    SetData(bON, "Local HMI", LB, 0, 1)

    short nDegree=0

    float fSIN=0.0

    //從三菱FX3G獲取角度

    GetData(nDegree, "Mitsubishi FX3U/FX3G", D, 100, 1)

    //計算角度nDegree對應的sin值。

    SIN(nDegree, fSIN)

    //將三角函式計算所得的sin值傳回PLC,要注意的是使用了D1,D0.

    SetData(fSIN, "Mitsubishi FX3U/FX3G", D, 0, 1)

    //上面是對問題的回答.

    //計算結果也可以在介面上以圖形顯示。

    GetData(nDegree, "Local HMI", LW, 0, 1)

    nDegree = nDegree+1

    if nDegree >= 361 then

    nDegree = 0

    end if

    SetData(nDegree, "Local HMI", LW, 0, 1)

    SIN(nDegree, fSIN)

    fSIN = fSIN*120

    SetData(fSIN, "Mitsubishi FX3U/FX3G", D, 0, 1)

    //

    GetData(nDegree, "Local HMI", LW, 1, 1)

    nDegree = nDegree+2

    if nDegree >= 361 then

    nDegree = 0

    end if

    SetData(nDegree, "Local HMI", LW, 1, 1)

    SIN(nDegree, fSIN)

    fSIN = fSIN*120

    SetData(fSIN, "Mitsubishi FX3U/FX3G", D, 2, 1)

    bON=false

    SetData(bON, "Local HMI", LB, 0, 1)

    end macro_command

    2.透過查表方法獲取。

    如下圖,可以事先透過查詢三角函式表,

    將角度對應數值以常數的形式儲存到PLC暫存器裡供程式呼叫。

    這是工作量很大的一種方法。

    上面暫時想到兩種方法。

    另外如果高等數學有印象的話,

    也可以用泰勒公式展開三角函式,套用公式編寫程式。

  • 中秋節和大豐收的關聯?
  • 求教如何進行裝修工程投標?