CoDeSys入门实战一起学习(二):从概念到创建并运行第一个 CoDeSys 工程-CODESYS资源下载区-酷德网 - CoDeSys软件教程下载,CoDeSys工控资讯门户 

酷德网

HSC6490-cn中国制造,中国芯~
查看: 465|回复: 0

CoDeSys入门实战一起学习(二):从概念到创建并运行第一个 CoDeSys 工程

[复制链接]
  • TA的每日心情
    慵懒
    2017-11-9 20:49
  • 签到天数: 2 天

    [LV.1]初来乍到

    发表于 2026-3-18 11:31:08 | 显示全部楼层 |阅读模式
    前言

    上一篇我们已经完成了 CoDeSys 工程的创建,这次要进入核心环节 —— 编写 PLC 程序!本次将用结构化文本(ST 语言)实现 “输入值 + 2 输出” 的功能,全程拆解变量声明、功能块创建、程序代码编写的完整流程,每个步骤都配详细说明,新手也能轻松跟上~
    一、核心目标

    本次编写的程序包含两部分:
      主程序 PLC_PRG:声明计数器变量、功能块实例,调用 FB1 并接收输出结果;功能块 FB1:接收输入值,加 2 后输出给 PLC_PRG。
    最终实现逻辑:输入值11 → FB1(+2)→ 输出结果13,同时 PLC_PRG 中的计数器变量自动累加。
    二、第一步:在 PLC_PRG 中声明变量(两种方式可选)

    PLC_PRG 是工程默认创建的主程序,所有变量需在声明区(VAR-END_VAR 之间)定义,支持手动声明和自动声明两种方式,下面分别讲解:
    方式 1:手动声明变量(推荐新手先掌握)

      打开 PLC_PRG 编辑器:在设备视窗的设备树中,找到「应用」下的「PLC_PRG」,双击打开 ST 语言编辑器;
      CoDeSys入门实战一起学习(二):从概念到创建并运行第一个 CoDeSys 工程-1.png

      认识编辑器布局:编辑器上半部分是「声明部分」(用于定义变量),下半部分是「实现部分」(用于写执行代码),中间有可调分割线;
    • 手动声明变量:
        将光标移到VAR和END_VAR之间,按回车插入空行;依次声明 3 个变量,语法格式:变量名: 数据类型;(注意冒号后有空格,结尾必须加封号):

    CoDeSys入门实战一起学习(二):从概念到创建并运行第一个 CoDeSys 工程-2.png



        注释用//开头,会被编译器忽略,仅用于说明变量功能,建议养成写注释的习惯。
        CoDeSys入门实战一起学习(二):从概念到创建并运行第一个 CoDeSys 工程-3.png

        FB1未创建报错
        CoDeSys入门实战一起学习(二):从概念到创建并运行第一个 CoDeSys 工程-4.png


    方式 2:自动声明变量(高效快捷,推荐熟练后使用)

    如果不想手动写声明,可直接在实现部分写代码,系统会自动补全声明,步骤如下:
      直接在 PLC_PRG 的「实现部分」输入代码(先不用管变量是否声明):输入完成后按回车,系统会弹出「自动声明」对话框 —— 未声明的变量(ivar、fbinst、erg)会自动识别;
    • 配置变量信息:
        变量名:系统已自动识别,无需修改;类型:分别选择INT(ivar、erg)、FB1(fbinst);初始值:默认留空即可(计数器 ivar 无需初始值,会自动从 0 开始);注释:可输入变量说明(如 “计数器变量”),无需加//,系统会以 XML 格式自动添加到声明区,方便后续文档生成;
      点击「确定」,系统会自动在声明区补全所有变量声明,注释也会同步添加,效率超高!
    ivar := ivar + 1;
    fbinst(in:=11, out=>erg);
    三、第二步:编写 PLC_PRG 的实现代码(主程序逻辑)

    变量声明完成后,在编辑器的「实现部分」(分割线下方)输入执行代码,实现计数器累加和功能块调用:
    1. 代码编写

    直接复制以下代码到实现部分,每行都附详细注释:
    CoDeSys入门实战一起学习(二):从概念到创建并运行第一个 CoDeSys 工程-5.png


    2. 代码语法说明

      赋值运算符::= 表示 “将右边的值赋给左边变量”(ST 语言特有,区别于 C 语言的=);功能块调用格式:实例名(输入参数:=值, 输出参数=>接收变量),输入用:=,输出用=>,参数之间用逗号分隔;注释:// 后面的内容为单行注释,编译器不执行,用于说明代码功能,必须加在代码行末尾或单独一行。
    四、第三步:创建功能块 FB1(核心逻辑实现)

    功能块(FB)是可复用的编程单元,本次 FB1 的功能是 “输入值 + 2 输出”,创建步骤如下:
    1. 新建功能块 FB1

      点击顶部菜单栏【工程】→【添加对象】,打开「添加对象」对话框;
      CoDeSys入门实战一起学习(二):从概念到创建并运行第一个 CoDeSys 工程-6.png

    • 左侧选择「POU」(编程对象),右侧配置:
        POU 名称:输入FB1(必须与 PLC_PRG 中声明的实例类型一致);类型:选中「功能块」(Function Block);实现语言:选择「结构化文本 (ST)」;
        CoDeSys入门实战一起学习(二):从概念到创建并运行第一个 CoDeSys 工程-7.png

      点击「打开」,系统会自动创建 FB1 的编辑窗口。
      CoDeSys入门实战一起学习(二):从概念到创建并运行第一个 CoDeSys 工程-8.png

    2. 声明 FB1 的变量(输入 / 输出 / 内部变量)

    功能块的变量分为输入(VAR_INPUT)、输出(VAR_OUTPUT)、内部变量(VAR)三类,需分别声明:
    CoDeSys入门实战一起学习(二):从概念到创建并运行第一个 CoDeSys 工程-9.png



    • 语法说明:
        VAR_INPUT:仅用于接收外部输入的变量,不能在功能块内部修改;VAR_OUTPUT:用于向外部输出结果的变量,由功能块内部赋值;VAR:功能块内部使用的变量,外部无法访问,这里给 ivar 赋初始值 2(:= 是赋值运算符)。

    3. 编写 FB1 的实现代码(核心逻辑)

    在 FB1 编辑器的「实现部分」输入以下代码,实现 “输入值 + 2” 的功能:
    out := in + ivar; // in(外部输入) + ivar(内部固定值2),结果赋给out输出
    CoDeSys入门实战一起学习(二):从概念到创建并运行第一个 CoDeSys 工程-10.png



      逻辑解读:当 PLC_PRG 调用 FB1 时,传入in=11,FB1 内部计算11+2=13,再通过out变量将 13 返回给 PLC_PRG 的erg变量。
    编译无报错
    CoDeSys入门实战一起学习(二):从概念到创建并运行第一个 CoDeSys 工程-11.png


    五、完整代码汇总

    1. 主程序 PLC_PRG 完整代码

    PROGRAM PLC_PRG
    VAR
      ivar: INT;          // 计数器变量,每次执行自增1
      fbinst: FB1;        // FB1功能块实例
      erg: INT;           // 接收FB1输出的结果变量
    END_VAR
    // 计数器自增
    ivar := ivar + 1;
    // 调用FB1,输入11,输出结果存入erg
    fbinst(in:=11, out=>erg);
    2. 功能块 FB1 完整代码

    FUNCTION_BLOCK FB1
    VAR_INPUT
      in: INT;  // 输入变量
    END_VAR
    VAR_OUTPUT
      out: INT; // 输出变量
    END_VAR
    VAR
      ivar: INT := 2; // 内部固定值2
    END_VAR
    // 核心计算逻辑:输入值+2输出
    out := in + ivar;
    六、关键语法 & 注意事项(新手必看)


    • 变量声明规则:
        变量名区分大小写(ivar和Ivar是两个不同变量);数据类型必须匹配(如 FB1 的输入变量是 INT,PLC_PRG 传入的 11 也是整数,不能传字符串);功能块实例的类型必须与功能块名称一致(fbinst: FB1不能写成fbinst: fb1)。

    • ST 语言基础语法:
        赋值用:=,不能用=(=在 ST 中是比较运算符);语句结尾必须加封号;,否则编译报错;注释用//(单行注释),多行注释用(* ... *)。

    • 功能块与主程序的关系:
        功能块是可复用的 “模块”,可以被多个主程序调用;调用功能块时,输入参数用:=赋值,输出参数用=>接收结果;功能块的内部变量(如 FB1 的 ivar)仅在内部生效,外部无法修改。

    • 编译检查:
        代码编写完成后,点击工具栏的「编译」按钮(图标为锤子);如果有语法错误,编辑器会在下方提示错误位置和原因,按提示修改即可。

    七、下一步:程序下载与监控

    代码编写完成后,就可以将程序下载到 PLC(或软件自带的模拟运行系统)中运行了!下一篇我们将详细讲解:
      如何通过 Gateway Server 连接设备;程序下载与运行操作;在线监控变量变化(查看 ivar 的计数过程和 erg 的输出结果)。
    +10
    不赞一个?
    打赏鼓励一下!
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册 新浪微博登陆

    本版积分规则

    
    顶部qrcode底部
    关注酷德网订阅号,获取更多资讯!

    QQ|Archiver|手机版|小黑屋|酷德论坛 ( 苏ICP备16065247号-1 )|网站地图

    GMT+8, 2026-10-9 10:30 , Processed in 0.137950 second(s), 50 queries .

    酷德网

    © 2001-2013 Hicodesys. 技术支持 by 酷德网

    快速回复 返回顶部 返回列表