IEC61131-3 PLC编程入门(3) - 新建第一个IEC61131-3工程helloworld发表时间:2019-10-28 18:03网址:http://www.nxtrol.com/logiclab_manual_03.html 启动LogicLab编程工具后您可以通过LogicLab菜单”File->New project”开始新建第一个工程”helloworld”,开始IEC61131-3编程之旅。
在本系列文章中主要将以LogicLab中自带的仿真PLC控制器:VPLC1为测试平台进行编程实验,如果是使用树莓派或者是Arduino Due硬件平台,可以参考对应平台章节新建工程并设置通讯参数,其他编程操作方式VPLC1与树莓派或者是Arduino Due硬件平台基本都一致,如下图所示: 进入工程默认资源视图可以查看到当前VPLC1的设备描述界面,注意根据不同型号的设备,由于所支持的功能不同,此处的”Configuration”下的设备资源是不一样的,例如树莓派的设备资源就比VPLC1强大许多,关于树莓派PLC的设备描述,可以参考如下文章: 树莓派PLC入门(1) - IEC61131-3 SoftPLC软件安装与功能简介
当您使用的是基于LogicLab平台OEM开发的控制器设备时,请与该控制器厂商获得该设备的详细名称与功能描述,选择新建工程时选择该OEM厂商指定的设备型号。 可以通过工程树窗口下的”Project”以及”Resources”选项卡在当前控制器的工程信息以及配置资源中进行切换,这里对”Project”以及”Resources”进行简单的说明:
切换到”Project”视图后,可以看到系统默认创建的工程已经包含了一个简单的main程序,其中包含了一个非常简单的ST结构化文本语句: cnt := cnt + 1;
并且cnt变量引用自全局变量表,程序main的局部变量表并没有定义任何变量。同时我们可以看到当前硬件设备支持3个任务Fast, Slow与Init并且只有Fast任务在执行程序main的任务实例。 每种类型的设备支持的任务Tasks个数以及类型并不一样,主要是由OEM设备厂家进行开发与设定,VPLC1用于仿真平台测试支持的任务只有3个,其中Fast与Slow任务为周期型(Cyclic),而Init任务为单次触发型(Single),所有的设备都基本包含这三个任务。
关于任务的介绍我们放在后续章节来进行介绍,这里我们需要记住的是:程序必须添加到具体任务中才可以运行,例如上图所示:程序main的任务实例。这也是IEC61131-3标准支持多任务的PLC与传统PLC的一个较大的区别,传统PLC通常没有任务的概念,只有主循环与中断概念,因此使用IEC61131-3多任务系统时需要加以区分。 启动与配置VPLC1仿真器
下面我们在VPLC1仿真控制器中简单运行helloworld工程中定义的main程序逻辑。通过工具栏中如下按钮可以激活仿真模式: 创建仿真工程工作区: LogicLab将自动启动仿真器,无需手动连接设备,如果使用实际的硬件设备控制器,例如树莓派PLC,则需要配置好通讯参数,手动点击连接按钮进行设备连接,树莓派PLC方案请参考文章: 树莓派PLC入门(2) - IEC61131-3编程工具LogicLab通讯设定与PLC授权管理
VPLC1的仿真器界面如下图所示: 编译工程与编译结果 通过下面工具栏按钮或者菜单编译当前”helloworld”工程: 提示编译成功没有报错,如下图所示: 下载工程逻辑 通过工具栏按钮或者菜单下载当前逻辑代码: 如果当前系统提示“目标系统已经存在应用代码,是否要继续?”,选择“是”下载的代码将覆盖目标上已经运行的逻辑代码。(注意:如果当前系统并不存在PLC应用逻辑代码,那么该对话框可能不会弹出) 激活调试模式 下载完成后系统会自动启动该PLC逻辑代码通过下面的工具栏按钮可以激活调试模式,而此时当前程序main代码工作单中的变量值会显示当前运行值,如下图所示: 此时由于处于调试状态,可以双击程序main中的”cnt”变量,在弹出的对话框中强制”cnt”变量值为您期望的值,这样LogicLab会将该强制值通过在线通讯协议实时写入到仿真控制器VPLC1的运行系统对应的变量中,您可以看到该变量值立即得到改变: 本章小结: 本章节为LogicLab基础操作,篇幅稍长,作者尽可能详细描述第一个快速上手工程的细节,熟练掌握本章节的操作过程,正常完成本章节过程应该在3-5分钟以内。本章节开始涉及IEC61131-3标准中的知识点,例如多任务Task概念,程序组织单元POU概念(Program程序,Function功能与Function Block功能块),全局变量与局部变量等等,IEC61131-3体系较为庞大,对于已经接触过西门子S7-1200/1500 PLC的博途(TIA Portal)编程环境或者例如C/C++, C#等高级编程语言的工程师来说,稍稍容易理解,我们将在后续章节对这些IEC61131-3概念再进行稍稍详细讲解,力求以通俗易懂的方式带领大家真正进入IEC61131-3编程的世界。
|