codesys自定义库水滴模型的创建与使用

1、序言

在程序编写过程中,常用的运算(比如加减乘除,正弦余弦等)我们可以通过函数或者指令直接使用,但更多的功能,类似于计算三角形面积,直线段距离等不太常用的就需要自行编写。而工程师在实际工作中,经常会碰到很多相似甚至相同的功能模块,而此功能模块在标准库又不存在时,可以通过自行创建一个库,来方便程序的编写和使用,不需要每次都重新编写功能模块。

2、codesys库的创建

codesys强大的功能,在自定义库的创建方面也给工程师提供了便利,而且codesys多种编程语言也使得工程师在创建自定义库时有更多的选择。

2.1、数学模型

本文使用结构化文本ST语言,创建一个打磨外形数学计算模型,如图所示;

 

红色线条为加工成品的水滴外形,本文只计算右侧直线段范围内,蓝色线条的长度,其意义是当半成品以原点为圆心旋转时,磨头根据外形到原点的距离来调整行走位置,将水滴外形打磨出来;蓝色线条的两个端点,一个为原点,另一个端点在红色斜边上,已知的条件是蓝色线段与X轴之间的夹角,红色直线段与X轴交点(a,0),Y轴的交点(0,b)都是已知参数。

根据已知条件,通过正弦定理可以计算得出;

先计算出斜边与X轴角度,记为斜边角度:arctan(b/a);

再计算出顶角角度:180-旋转角度-斜边角度;

根据正选定理可得:蓝色线段长度=a*sin(斜边角度)/sin(顶角角度);

2.2、创建库文件

创建库文件的步骤如下:

a、创建新工程,选择左侧选择库,右侧选择codesys库,下方选择库的保存路径,设置名称,点击确定,;

b、在左侧的库名字出点击右键,添加对象,选择POU,进入添加POU界面,输入名称(这个名称需要记录,库使用时会用到),选择功能块,实现语言自行选择,本例使用ST语言,如图所示;

 

 c、功能块编程:根据需要定义输入和输出变量,(必须定义输入和输出,库在应用时通过输入(input)接入功能块,通过输出(output)输出结果供程序使用);并根据数学模型编写程序,编写完成后,可以通过菜单栏,编译项中的检查所有对象进行编译,没有错误就可以,如下图所示;

 d、添加工程信息:编写完毕后,需要将库文件装载,一般装载在application底下,在菜单栏,工程选项下,选择工程信息,在工程信息页面,写入标题,(需要记住标题的名称,在调用时也会使用到,需要对应),并添加库类别,库类别application的选项需要先找到codesys软件安装位置目录\CODESYS\Templates\Library_Template文件,然后类别只需要勾选application,(可以先点无,再单独勾选)确定,就能看到,点击添加即可。

e、保存工程,并装入库,点击编辑下方的抽屉盒即可,如图所示;

 

 3、库的调用

3.1 添加库

装载入库以后,在程序中就可以使用了,我们在编程时,需要先添加库,在库管理器中,选择添加库,点开application,找到我们设置的标题内容一致的块,比如本例我们设置的标题名称为转换,点击确定后,可以在库管理器中看到刚刚添加的库,而转换库的下方可以找到我们创建pou时定义的名称,正弦计算,如图所示

 

 3.2、调用库,编写程序

库的调用需要2步,

a、定义库变量,定义方式如图所示,本例中,“正弦定理:转换.正弦计算”即可定义完成;

b、使用库函数,通过正弦定理(),就可以使用刚刚定义的库函数;

c、程序编写,有了库函数,程序编写就相对简单了,库中的输入输出变量不需要再定义,可以通过后缀的方式实现,如正弦定理.x轴交点,这里需要注意的是,我们在定义程序变量时,需要注意库函数编写时输入输出的变量格式,两个对应变量需要统一,比如程序中x1用来对应库中的输入变量x轴交点,而x轴交点定义格式为real,那么使用定义x1也需要为real,用以避免格式不匹配产生的错误或警告。

 4、仿真运行

程序通过编译后,可以进行仿真验证结果,

  

 以x轴与y轴交点分别为2为例,加上原点,构成一个等腰直角三角形,那么当旋转角度为45度时,原点与线段垂直,其距离为2*sin(45°),显示两位小数为1.41,旋转角度为15度时,其距离为2*sin(45°)*sin(60°),显示两位小数为1.63,结果都正确,验证通过。

5、综述

本文以一个数学模型为例,建立一个自定义的库,在程序中只需要调用库,按条件输入,就可以得到数学模型的输出结果,无需再去重新编写模型的程序。

本文所创建的库在后续电子凸轮设置中可能会有用到,故先创建了这样一个库,嘿嘿。

本文所编写的库函数与测试程序可以在以下地址下载。

https://download.csdn.net/download/qq_19979629/81918600

  • 3
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

tnt1314

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值