在西门子的编程手册里是这么解释的:
计算功能ATAN2(,) 这个功能可以从两个相互垂直的矢量计算出总矢量的角度.结果位于四个象限的范围内(-°<0<180°). 角度是指在正方向的第二个数值.
我的问题就是这句话:
"结果位于四个象限的范围内(-°<0<180°). 角度是指在正方向的第二个数值."
什么意思呢? 结果的角度只能是0度到180度之间么? 我自己试过.应该是0度到360度呢.奇怪为什么手册上给出这个范围.
R31=$AA_IM[X]
R32=$AA_IM[Y]
M0
R33=$AA_IM[X]
R34=$AA_IM[Y]
M0
R36=R32-R34
IF R36<0 GOTOF N1
R35=ATAN2((R32-R34)/(R31-R33)) @@@
M30
N1 R35=180-ATAN2(ABS(R32-R34)/(R31-R33))
M30
这个找正程序 我想知道就是
1:当 R36<0时 ,也就是 程序跑的是N1的计算公式.这时 R35的结果是什么?? 是大于±180度的一个数值么?
2: 也是N1段中 ABS((R32-R34) 这里 为什么把这个R32-R34 的结果加上绝对值呢? 目的是 让这个角度在 0度到180度的 范围内么??
3: 我想 N1 这里 应该写成 R35=ATAN2((ABS(R32-R34),(R33-R31))-180 因为在找正的时候我们肯定要通过目测起码不能歪的太多吧,如果这样写的话,明显就是一个是正方向的角度 一个是负方向的角度. 这里如果有什么不对的希望大家指出.
新手到这提了些问题希望大家能帮帮忙.