苏州实操派科技有限公司官网-实操派教育科技,汇川技术PLC培训,实操派PLC培训,苏州PLC培训机构

如何在CODESYS中调用程序:简单教程

[复制链接]

附件下载,需登录可以查看贴内更多信息

您需要 登录 才可以下载或查看,没有账号?立即注册

x
文章大纲:

1. 介绍CODESYS的概念以及其应用领域;
2. CODESYS中程序调用的概念;
3. CODESYS中程序调用的语法与规则;
4. 如何创建一个可被调用的程序;
5. 各种调用方法的具体实现方式;
6. 调用程序时需要注意的细节;
7. 总结。

正文内容:

1. 介绍CODESYS的概念以及其应用领域

CODESYS是一个开放式的工业自动化软件平台,它提供了从设计、编程到部署的一系列工具。CODESYS广泛应用于自动化控制、机器人和物联网等领域,是电气工程及其自动化中不可或缺的重要组成部分。

2. CODESYS中程序调用的概念

程序调用是将一个独立完整的程序作为子程序在其他程序中运行,也称为函数调用。在CODESYS中,程序调用可以有效地提高代码的复用性和可读性,方便对系统进行优化和维护。

3. CODESYS中程序调用的语法与规则

在CODESYS中,程序调用的语法如下:

```
<Return Data Type> <Function Name>(Parameter 1 Data Type Parameter 1 Name, Parameter 2 Data Type Parameter 2 Name,…);
```

其中,`<Return Data Type>`表示调用函数的返回值类型,`<Function Name>`表示被调用的函数名,`Parameter Data Type`和`Parameter Name`为参数数据类型和参数名。

4. 如何创建一个可被调用的程序

要创建一个可被调用的程序,首先需在代码中定义该程序并设置好相应的输入输出参数。随后,在CODESYS的程序模块中,利用定义好的参数和规则实现对程序的调用,并将该程序模块作为子程序嵌入到需要调用的地方。

5. 各种调用方法的具体实现方式

CODESYS中有四种程序调用的方法,分别是直接调用、间接调用、回调调用和迭代调用。下面将详细介绍各种调用方法的实现方式。

(1)直接调用

直接调用是最常用的调用方法,它需要在主程序中定义被调用的程序,然后在需要调用的地方使用函数语法直接调用。

具体实现方式如下:

① 在主程序中定义被调用的程序

```
PROGRAM CallProgram
VAR
    iInput : INT;
    iOutput : INT;
END_VAR

//被调用的程序
PROGRAM CalledProgram
VAR
    iInput : INT;
    iOutput : INT;
END_VAR

iInput:=0;
iOutput:=0;

//设置输入输出
IF iInput = 0 THEN
    iOutput := 1;
ELSE
    iOutput := 0;
END_IF
```

② 在需要调用的地方使用函数语法直接调用

```
iOutput:=CalledProgram(iInput);
```

(2)间接调用

间接调用是通过函数指针实现的程序调用方法。它需要在主程序中定义被调用的程序并设置好函数指针,然后在需要调用的地方使用函数指针进行调用。

具体实现方式如下:

① 在主程序中定义被调用的程序并设置好函数指针

```
PROGRAM CallProgram
VAR
    iInput : INT;
    iOutput : INT;
    pFunction : POINTER TO FUNCTION( iInput : INT) : INT;
END_VAR

//被调用的程序
PROGRAM CalledProgram
VAR
    iInput : INT;
    iOutput : INT;
END_VAR

iInput:=0;

//设置输出
IF iInput = 0 THEN
    iOutput := 1;
ELSE
    iOutput := 0;
END_IF
```

② 在需要调用的地方使用函数指针进行调用

```
pFunction:=ADR(CalledProgram);

iOutput:=pFunction^ (iInput);
```

(3)回调调用

回调调用是利用回调函数实现的程序调用方法。它需要在主程序中定义回调函数并将其传递给被调用程序,然后被调用程序在需要调用时回调该函数进行操作。

具体实现方式如下:

① 在主程序中定义回调函数

```
FUNCTION CallbackFunction : INT
VAR
    iInput : INT;
    iOutput : INT;
END_VAR

iInput:=0;
iOutput:=0;

//设置输入输出
IF iInput = 0 THEN
    iOutput := 1;
ELSE
    iOutput := 0;
END_IF

CallbackFunction:=iOutput;
```

② 将回调函数传递给被调用程序

```
PROGRAM CallProgram
VAR
    iInput : INT;
    iOutput : INT;
    pCallbackFunction : POINTER TO FUNCTION : INT;
END_VAR

//被调用的程序
PROGRAM CalledProgram
VAR
    iInput : INT;
    iOutput : INT;
    pCallback : POINTER TO FUNCTION : INT;
END_VAR

//传递回调函数并进行操作
iOutput:=pCallback^ ();
```

(4)迭代调用

迭代调用是利用递归函数实现的程序调用方法。它需要在主程序中定义递归函数,并在需要调用时不断地进行迭代调用,直到满足终止条件。

具体实现方式如下:

① 在主程序中定义递归函数

```
FUNCTION RecursiveFunction : INT
VAR
    iInput : INT;
    iOutput : INT;
END_VAR

iInput:=0;
iOutput:=0;

//设置输入输出
IF iInput = 0 THEN
    iOutput := 1;
ELSE
    iOutput := RecursiveFunction();
END_IF

RecursiveFunction:=iOutput;
```

② 进行迭代调用

```
iOutput:=RecursiveFunction();
```

6. 调用程序时需要注意的细节

在CODESYS中调用程序时,需要注意以下几点:

(1)被调用的程序必须事先定义好并设置好输入输出参数,否则调用会出错。

(2)调用语法和规则必须符合CODESYS的要求,否则程序无法编译通过。

(3)在进行函数指针和回调函数的操作时,需确保被调用程序与调用程序的数据类型和参数个数等相关信息一致。

(4)迭代调用时需注意终止条件,否则可能引发死循环等严重问题。

7. 总结

本文详细介绍了CODESYS中程序调用的概念、语法和规则,以及各种调用方法的具体实现方式,并提供了几点注意事项。希望本文能够对电气工程及其自动化领域的从业者有所帮助。

________________________________________________________________________

免责声明:本文非官方发布,内容真实性请注意甄别,文章内容仅供参考。本站不对内容真实性负责,请悉知!本站不对内容真实性负责,请悉知!。我们专注于汇川技术产品培训,官网https://shicaopai.com

相关帖子

回复

使用道具 举报

shicaopai 2023-8-2 17:28:46 | 显示全部楼层
如何在CODESYS中调用程序:简单教程

CODESYS是一个开放式的工业自动化软件平台,广泛应用于自动化控制、机器人和物联网等领域。在CODESYS中,程序调用是将一个独立完整的程序作为子程序在其他程序中运行的方法,有助于提高代码的复用性和可读性。

在CODESYS中,程序调用的语法如下:
<Return Data Type> <Function Name>(Parameter 1 Data Type Parameter 1 Name, Parameter 2 Data Type Parameter 2 Name,...);
其中,<Return Data Type>表示调用函数的返回值类型,<Function Name>表示被调用的函数名,Parameter Data Type和Parameter Name为参数数据类型和参数名。

要创建一个可被调用的程序,首先需在代码中定义该程序并设置好相应的输入输出参数。随后,在CODESYS的程序模块中,利用定义好的参数和规则实现对程序的调用,并将该程序模块作为子程序嵌入到需要调用的地方。

在CODESYS中,有四种程序调用的方法:直接调用、间接调用、回调调用和迭代调用。

直接调用是最常用的调用方法,通过在主程序中定义被调用的程序,并使用函数语法直接调用。间接调用是通过函数
                                                                                                                                                                                                                                                 以上内容来自  AI机器人,如需继续对话,则在此回答下“点击回复” 或者 在提问时  “@机器人”!禁止 "黄赌毒及政治敏感",违者封号,严重者 提交 网警公安部门。本站不对内容真实性负责,AI机器人有时候会乱说一通……
回复

使用道具 举报

data/attachment/temp/202212/30/133743h8cd9z14sjs84kaz.png_thumb.jpg 共31章节616课时

【全科班】汇川中型PLC从0到1就业班(Codesys系统化全科班课程-600节+)-汇川PLC教程

朱子文

咨询客服
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/VMdEZiqp3BMkbBIlMRRD.png 共9章节44课时

【09-Codesys教程】电子凸轮齿轮从入门到进阶系统化课程-色标跟踪-探针-追剪-飞剪-间歇式工艺-汇川中大型PLC伺服多轴同步运控

朱子文

¥ 699.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240217/v39r666Z663eBBGKErRm.png 共30章节630课时

【全科班】汇川技术H5U从0到1就业班(系统化全科班-600节+)

张汉清

咨询客服
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240207/HlL5SWHry9lPVdqC8i59.png 共5章节63课时

【01-Codesys教程】ST文本从0到1,从入门到进阶-汇川中大型PLC教程

朱子文

¥ 499.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240227/AMo32PcbJeIMJBT3m8Pu.png 共4章节36课时

03 中大型ST文本结合仿真软件小项目 31节-气缸功能块封装-状态机编程思路-小设备框架

朱子文

¥ 499.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/Fu5pu34pPcTpu0La443P.png 共6章节52课时

【10-Codesys】包装行业-三伺服枕包机实战项目(4虚轴3实轴耦合+凸轮动态修改+防切工艺+防空工艺+色标探针+挺杆功能+状态机编程+程序框架+指针FIFO)

朱子文

¥ 899.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/Su1ibr3I77yl78DLBR7D.png 共4章节29课时

【12-Codesys小课】中大型PLC-PID控制器算法从入门到进阶之液位控制系统

朱子文

¥ 699.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20230603/Cz3hqDmDD8qHfT3MDm4m.png 共3章节30课时

【05-Codesys教程】汇川中大型PLC单轴运动控制教程-汇川PLC教程

朱子文

¥ 399.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20230603/gXpEpJ8Qb78eD5lDqlnQ.png 共3章节25课时

【06-Codesys教程】汇川中大型PLC运动控制进阶篇(多轴PTP)-编程框架与编程模板实操

朱子文

¥ 499.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/e39s63ppg54Q2s5H33H9.png 共3章节24课时

【08-codesys教程】汇川中大型codesys教程-多轴运控扩展篇经验分享小知识分享

朱子文

¥ 299.00
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

data/attachment/temp/202212/30/133743h8cd9z14sjs84kaz.png_thumb.jpg 共31章节616课时

【全科班】汇川中型PLC从0到1就业班(Codesys系统化全科班课程-600节+)-汇川PLC教程

朱子文

咨询客服
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/VMdEZiqp3BMkbBIlMRRD.png 共9章节44课时

【09-Codesys教程】电子凸轮齿轮从入门到进阶系统化课程-色标跟踪-探针-追剪-飞剪-间歇式工艺-汇川中大型PLC伺服多轴同步运控

朱子文

¥ 699.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240217/v39r666Z663eBBGKErRm.png 共30章节630课时

【全科班】汇川技术H5U从0到1就业班(系统化全科班-600节+)

张汉清

咨询客服
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240207/HlL5SWHry9lPVdqC8i59.png 共5章节63课时

【01-Codesys教程】ST文本从0到1,从入门到进阶-汇川中大型PLC教程

朱子文

¥ 499.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240227/AMo32PcbJeIMJBT3m8Pu.png 共4章节36课时

03 中大型ST文本结合仿真软件小项目 31节-气缸功能块封装-状态机编程思路-小设备框架

朱子文

¥ 499.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/Fu5pu34pPcTpu0La443P.png 共6章节52课时

【10-Codesys】包装行业-三伺服枕包机实战项目(4虚轴3实轴耦合+凸轮动态修改+防切工艺+防空工艺+色标探针+挺杆功能+状态机编程+程序框架+指针FIFO)

朱子文

¥ 899.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/Su1ibr3I77yl78DLBR7D.png 共4章节29课时

【12-Codesys小课】中大型PLC-PID控制器算法从入门到进阶之液位控制系统

朱子文

¥ 699.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20230603/Cz3hqDmDD8qHfT3MDm4m.png 共3章节30课时

【05-Codesys教程】汇川中大型PLC单轴运动控制教程-汇川PLC教程

朱子文

¥ 399.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20230603/gXpEpJ8Qb78eD5lDqlnQ.png 共3章节25课时

【06-Codesys教程】汇川中大型PLC运动控制进阶篇(多轴PTP)-编程框架与编程模板实操

朱子文

¥ 499.00
https://shicaopai-video-files.oss-cn-hangzhou.aliyuncs.com/keke_video_base/image/20240206/e39s63ppg54Q2s5H33H9.png 共3章节24课时

【08-codesys教程】汇川中大型codesys教程-多轴运控扩展篇经验分享小知识分享

朱子文

¥ 299.00

到"π³ 实操派",学PLC就是快!汇川PLC及Codesys培训

项目实战 手把手教学 微信&电话 15850116008
超600节系统化课程,汇川优秀自动化讲师亲授!学一门Codesys,玩800家PLC仅剩少量名额
点击免费试听

到实操派,学PLC就是快!

扫码领取工控文库VIP

钻石VIP先到先得

服务电话 & 微信:9:00-22:00

15850116008

苏州实操派科技有限公司

公司地址:江苏省苏州市吴中区越溪街道天鹅荡路5号31B13

Copyright © 苏州实操派科技有限公司 2022 到实操派,学PLC就是快!工业自动化业务培训适用人群:成人 ( 苏ICP备2022021576号-3 )

公司地址:江苏省苏州市吴中区越溪街道天鹅荡路5号31B13

返回顶部