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硬件平台基本都一致,如下图所示:


03_01.png


进入工程默认资源视图可以查看到当前VPLC1的设备描述界面,注意根据不同型号的设备,由于所支持的功能不同,此处的Configuration下的设备资源是不一样的,例如树莓派的设备资源就比VPLC1强大许多,关于树莓派PLC的设备描述,可以参考如下文章:

树莓派PLC入门(1) - IEC61131-3 SoftPLC软件安装与功能简介


当您使用的是基于LogicLab平台OEM开发的控制器设备时,请与该控制器厂商获得该设备的详细名称与功能描述,选择新建工程时选择该OEM厂商指定的设备型号。


03_02.png


可以通过工程树窗口下的Project以及Resources选项卡在当前控制器的工程信息以及配置资源中进行切换,这里对Project以及Resources进行简单的说明:

  • Project包含当前工程中运行在设备上的IEC61131-3对象,包括了基础的任务(Task)、程序(Program)、功能(Function)、功能块(Function Block)、数据类型、全局变量表等等。其中程序(Program)、功能(Function)、功能块(Function Block)又被称为是程序组织单元POU(Program Organization Unit),是用来描述基础逻辑的三个最核心的元素。关于POU的详细概念,我们将在后续章节逐步掌握。


  • Resources包含当前控制器中支持的外设以及系统功能,主要是用于对外设进行设定以及将外设I/OProject中的变量进行关联。例如本地I/O的配置,Modbus/CANopen/EtherCAT配置等等功能。因此如果您使用的是基于LogicLab平台OEM开发的控制器设备,请遵循该设备的用户手册。


03_03_p.png


切换到Project视图后,可以看到系统默认创建的工程已经包含了一个简单的main程序,其中包含了一个非常简单的ST结构化文本语句:

cnt := cnt + 1;


并且cnt变量引用自全局变量表,程序main的局部变量表并没有定义任何变量。同时我们可以看到当前硬件设备支持3个任务Fast, SlowInit并且只有Fast任务在执行程序main的任务实例。


03_04_p.png



每种类型的设备支持的任务Tasks个数以及类型并不一样,主要是由OEM设备厂家进行开发与设定,VPLC1用于仿真平台测试支持的任务只有3个,其中FastSlow任务为周期型(Cyclic),而Init任务为单次触发型(Single),所有的设备都基本包含这三个任务。


关于任务的介绍我们放在后续章节来进行介绍,这里我们需要记住的是:程序必须添加到具体任务中才可以运行,例如上图所示:程序main的任务实例。这也是IEC61131-3标准支持多任务的PLC与传统PLC的一个较大的区别,传统PLC通常没有任务的概念,只有主循环与中断概念,因此使用IEC61131-3多任务系统时需要加以区分。


启动与配置VPLC1仿真器

下面我们在VPLC1仿真控制器中简单运行helloworld工程中定义的main程序逻辑。通过工具栏中如下按钮可以激活仿真模式:


03_05_p.png



创建仿真工程工作区:


03_06.png


LogicLab将自动启动仿真器,无需手动连接设备,如果使用实际的硬件设备控制器,例如树莓派PLC,则需要配置好通讯参数,手动点击连接按钮进行设备连接,树莓派PLC方案请参考文章:

树莓派PLC入门(2) - IEC61131-3编程工具LogicLab通讯设定与PLC授权管理


VPLC1的仿真器界面如下图所示:


03_07_p.png



编译工程与编译结果

通过下面工具栏按钮或者菜单编译当前helloworld工程:


03_08_p.png



提示编译成功没有报错,如下图所示:


03_09.png



下载工程逻辑

通过工具栏按钮或者菜单下载当前逻辑代码:


03_10_p.png



如果当前系统提示“目标系统已经存在应用代码,是否要继续?”,选择“是”下载的代码将覆盖目标上已经运行的逻辑代码。(注意:如果当前系统并不存在PLC应用逻辑代码,那么该对话框可能不会弹出)


03_11.png


激活调试模式

下载完成后系统会自动启动该PLC逻辑代码通过下面的工具栏按钮可以激活调试模式,而此时当前程序main代码工作单中的变量值会显示当前运行值,如下图所示:


03_12_p.png


此时由于处于调试状态,可以双击程序main中的cnt变量,在弹出的对话框中强制cnt变量值为您期望的值,这样LogicLab会将该强制值通过在线通讯协议实时写入到仿真控制器VPLC1的运行系统对应的变量中,您可以看到该变量值立即得到改变:


03_13.png



本章小结:

本章节为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编程的世界。




关注我们
产品中心
联系我们

服务电话:021-64190729

                 13764507241


咨询邮箱:support@nxtrol.com

关注我们微信公众号
获得最新技术与资讯