| 三菱PLC某些型号是不支持三角函数指令的。 (责任编辑:admin)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寄存器里供程序调用。
 这是工作量很大的一种方法。
 
   上面暂时想到两种方法。
 另外如果高等数学有印象的话,
 也可以用泰勒公式展开三角函数,套用公式编写程序。
 |