CODESYS 三角函数等应用实例


1.正弦函数SIN、反正弦函数ASIN

  语法: 输入变量 IN 可以是 BYTE、 WORD、 DWORD、 SINT、 USINT、 INT、 UINT、 DINT、UDINT、 REAL、 LREAL 和常数,但输出必须是 REAL 或 LREAL 类型。

1.1程序

1.2结果

2.余弦函数COS、反余弦函数ACOS

  语法: 输入变量 IN 可以是 BYTE、 WORD、 DWORD、 SINT、 USINT、 INT、 UINT、 DINT、UDINT、 REAL、 LREAL 和常数,但输出必须是 REAL 或 LREAL 类型。

2.1程序

2.2结果

3.正切函数TAN、反正切函数ATAN

  语法: 输入变量 IN 可以是 BYTE、 WORD、 DWORD、 SINT、 USINT、 INT、 UINT、 DINT、UDINT、 REAL、 LREAL 和常数,但输出必须是 REAL 或 LREAL 类型。

3.1程序

3.2结果

4.atan2函数

Codesys没有atan2函数可供直接调用(本人未发现,欢迎评论区打脸),故提供一种思路利用ATAN函数来自己写atan2函数,两者对应关系如下图所示:

1.添加函数

2.根据ATAN与atan2关系,编写atan2函数:

1 FUNCTION atan2 : LREAL 2 VAR_INPUT 3 x:LREAL; 4 y:LREAL; 5 6 END_VAR 7 VAR 8 lrSinus:LREAL; 9 lrCosinus:LREAL; 10 END_VAR 11 12 lrSinus:=x; 13 lrCosinus:=y; 14 IF lrSinus>0 THEN 15 atan2:=ATAN(lrSinus/lrCosinus); 16 ELSIF (lrCosinus>=0 AND lrSinus<0) THEN 17 atan2:=ATAN(lrSinus/lrCosinus)+3.1415926; 18 ELSIF (lrCosinus<0 AND lrSinus<0) THEN 19 atan2:=ATAN(lrSinus/lrCosinus)3.1415926; 20 ELSIF (lrCosinus>0 AND lrSinus=0) THEN 21 atan2:=3.1415926/2; 22 ELSIF (lrCosinus<0 AND lrSinus=0) THEN 23 atan2:=3.1415926/2; 24 ELSE 25 atan2:=0; 26 END_IF

3.程序中调用

4.结果

5.指数函数EXP
功能: 返回 e(自然对数的底)的幂次方, e 是一个常数为 2.71828 的数。
语法: 输入变量 IN 可以是 BYTE、 WORD、 DWORD、 SINT、 USINT、 INT、 UINT、 DINT、UDINT、 REAL、 LREAL 和常数,但输出必须是 REAL 或 LREAL 类型。
基本语法:

OUT:=EXP(IN);

程序示例:

程序运行结果为:7.389056

6.自然对数LN
功能: 返回一个数的自然对数。自然对数以常数项 e (2.71828182845904) 为底。
语法: 输入变量 IN 可以是 BYTE、 WORD、 DWORD、 SINT、 USINT、 INT、 UINT、 DINT、UDINT、 REAL、 LREAL 和常数,但输出必须是 REAL 或 LREAL 类型。
基本语法:

OUT:=LN(IN);

程序示例:

程序运行结果为:3.80666

7.以 10 为底的对数 LOG
功能: 返回底为 10 数的对数。
语法: 输入变量 IN 可以是 BYTE、 WORD、 DWORD、 SINT、 USINT、 INT、 UINT、 DINT、UDINT、 REAL、 LREAL 和常数,但输出必须是 REAL 或 LREAL 类型。
基本语法:

OUT:=LOG(IN);

程序示例:

程序运行结果为:2.49762



上一篇:电工必考题:双互锁控制电机正反转,10张分解图教会你接线

下一篇:CODESYS 实例代码:可视化输出变量(Hello world!)


CODESYS
Copyright © 2002-2019 k262电脑网 www.k262.cn 皖ICP备2020016292号
温馨提示:部分文章图片数据来源与网络,仅供参考!版权归原作者所有,如有侵权请联系删除!QQ:251442993 热门搜索 网站地图