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