急求三菱fx3g的plc沒有計(jì)算三角函數(shù)的指令,如何解決
三菱fx3g系列的plc是不支持三角函數(shù)指令的如正弦(SIN)、余弦(COS)、正切(TAN)以及反三角函數(shù)指令,這需要3U系列的才支持,這些指令是計(jì)算弧度(RAD)的,因此需要把角度數(shù)值轉(zhuǎn)換為弧度值才能用三角指令,而且指令中的數(shù)值都是浮點(diǎn)數(shù)。那3g中不支持如何實(shí)現(xiàn),除了更換plc外我們可以采用如下方向?qū)崿F(xiàn):
- 按照三角函數(shù)數(shù)值對(duì)照表,把所有的角度和結(jié)果輸入到程序中,用到哪個(gè)角度就調(diào)用對(duì)應(yīng)的數(shù)值即可,這是最笨的方法,如果要求計(jì)算的角度不多的可以采用。
- 按照三角函數(shù)的泰勒級(jí)數(shù)展開式編寫子程序:忽略最后的高階無窮小項(xiàng)目,我們?cè)趐lc的梯形圖中按照加減乘除的四項(xiàng)運(yùn)行就能簡(jiǎn)單計(jì)算出函數(shù)值,如下圖中計(jì)算正弦函數(shù)的sin值,首先把角度轉(zhuǎn)換為弧度值,按照上述的式子計(jì)算,45°的結(jié)果為0.705,誤差還是有的,如果要求精度不高的話可以采用此方法。
- 第三種方式就是如果與觸摸屏通訊,我們可以使用宏指令中內(nèi)置函數(shù)庫(kù)中的數(shù)學(xué)運(yùn)算函數(shù)進(jìn)行計(jì)算,首先就是把我們的plc的角度值傳輸?shù)接|摸屏的數(shù)據(jù)寄存器中,計(jì)算完成結(jié)果再傳到plc中,下面是威綸通觸摸屏用宏指令編寫三角函數(shù)的:
macro_commandmain()
floata,b//定義兩個(gè)浮點(diǎn)數(shù)a和吧
GetData(a,"MitsubishiFX3U/FX3G",D,0,1)//獲取plc上的角度值D0并賦值給a
SIN(a,b)//計(jì)算出其sin值保存到b中
SetData(b,"MitsubishiFX3U/FX3G",D,10,1)//把結(jié)果再回傳到plc上的D10中
endmacro_command
以上就是三菱fx3g的plc計(jì)算三角函數(shù)的幾種方式,希望能幫到你!