plc结构化编程

更新时间:2024-01-04 23:35:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第一章

此手册供开放式架构数控系统PA 8000的PLC编程人员参考使用,编程人员在进行 PLC编程之前请仔细阅读本手册。

手册中将介绍如何利用系统中自带的PLC编程工具进行编程,同时介绍编程指令及格式等,手册中的编程格式为ST,其它的编程格式不详细介绍。最后将以一铣床的PLC程序为例加深对程序的理解

为了使手册更加通俗易懂,手册中并没有介绍所有的与PLC相关的内容,用户如有需要可向机床制造商索取专门的介绍资料。希望调试人员能通过对本手册的阅读更快地熟练PLC编程。

第二章 PLC-1131-3 DS简介 PLC-1131-S3为PLC编程提供了一个完善的环境,为PLC程序员处理各种程序 提供了一个简单而又功能强大的途径,它的编程和调试基于完善的环境和高级编程语言(类似与Visual C++)。

2.1 PLC-1131-3 DS功能简介

工程文件的结构:

工程文件的后缀名为pro,在新工程中建立的第一个程序结构单元(Program Organization Unit)将被自动命名为PLC_PRG,这个程序结构单元就类似于C 语言中的主程序。在PLC_PRG中可以调用各种函数及功能块,而函数和功能块都属于程序结构单元。

PLC-1131-3 DS能够区分在同一工程中的不同对象: 程序结构单元(POU) 数据类型(data types) 资源(resources)

工程的设置:

1) 首先应该设置PLC的输入输出以保证工程中使用的地址的准确性。 2)接着建立解决问题的程序结构单元 3) 选择适当的语言编写程序

4) 写好程序之后,对程序进行编译去除程序中的所有错误。

工程的测试:

当工程之中的所有错误被去除之后激活仿真模式,就是与仿真PLC连接,与此同时将工程下载到PLC中,这样 PLC-1131-3 DS就处于在线方式了。

现在能以适当的顺序测试工程了,手动改变输入变量的值,观察输出是否正确。 用PLC-1131-3DS调试程序

当程序发生错误时,你可以设置断点。当处理发生中断时,你就可以及时的在断点处检查所有工程变量的值。工作在单步方式(singlestep)下,可以检验程序的逻辑错误。

你可以强制输入或输出变量的值。使用流控制(flowcontrol)可以知道哪些程序段已经执行。采样轨迹(SamplingTrace)显示变量在长时间的变化过程曲线。 整个工程可以以文本文件的形式导出。

总而言之 PLC-1131-3 DS对于PLC编程是一种完善和方便的工具。

2.2 PLC-1131-3 DS基本概念

此节包括一些重要的概念帮助你熟悉PLC-1131-3 DS 2.2.1工程的组成 工程 (Project)

一个工程包括了PLC程序中所有的对象,工程中包含了如下对象: ? 程序结构单元 POUs ? 数据类型 data types ? 资源 resources ? 库函数 libraries 程序结构单元(POU)

函数 (Functions), 功能块(function blocks)和程序(programs)都是程序结构单元(POUs)。 每个POU包括了定义变量和程序主体两个部分。程序主体用IEC编程语言编写,其中包括: 指令表 (IL) 结构文本 (ST) SFC FBD

梯形图(LD).

PLC-1131-3 DS 支持所有的标准IEC程序结构单元。 POUs之间能够相互调用,但是不允许递归调用. 函数(Function)

当定义函数的时候,不要忘记函数中必须含有返回值的数据类型,也就是说在函数名的后面必需紧跟冒号和一个数据类型。 下面是一个正确的函数定义:

FUNCTION INDUAL :INT

就是说函数名被用作输出变量。函数定义的以关键字FUNCTION开始,以END_FUNCTION 结尾。Example in IL of a function that takes three input variables and returns the product of the first two divided by the third:

Image 0.1: Function

{bmc bild2_1.bmp}

? Example of a function in IL

函数没有任何的内部条件,就是说当用相同的输入变量时就会得出相同的结果(输出)。

? Examples for calling up the function described above

Examples for calling up the function described above: in ST:

Result := Fct(7, 2, 4);

程序(Program)

程序是一种程序结构单元,在运行过程中返回一定数量的值。程序在整个工程中都可以被识别。 {bmc bild2_8.bmp}

? Example of a program

程序能够被调用,但不允许在函数中调用程序。如果在程序结构单元中调用程序时程序的返回值有变化,这些变化将保持到下一次程序调用,即使程序程序是从

其它程序结构单元调用的。

程序由起始关键字PROGRAM开始,END_PROGRAM结束。.

? Examples of calls of the program described above

in ST: PRGExample;

Res := PRGexample.PAR;

If the variable PAR from the program PRGexample is initialized by a main program with 0, and then one after the other programs are called with above named program calls, then the RES result in the programs will have the values 1, 2, and 3. If one exchanges the sequence of the calls, then the values of the given result parameters also change in a corresponding fashion. PLC_PRG

PLC_PRG 是一个特殊的预先定义的程序结构单元,任何工程都必须含有这个特殊的程序。每次循环的过程中调用一次PLC_PRG 。

在新工程建立之后第一次执行 \命令时,程序结构单元对话框中的初始输入项就是名为PLC_PRG的程序类型。

注意: 不要删除或者重命名PLC_PRG

Resources

设置和组织工程所需的资源:

? 全局变量 Global Variables ? PLC设置 PLC Configuration ? 任务配置 Task Configuration ? 采样轨迹 Sampling Trace

? 观察和接收管理器Watch and Receipt Manager

分支指令(CASE instruction)

使用分支指令可以将一些具有相同条件变量的指令结合在一个结构中 语法:

CASE <变量1> OF <=1>: <=2>: ... <=n>: ELSE

<指令 n> <指令 1> <指令 2>

END_CASE;

CASE指令根据下面的模式处理程序:

?????如果?变量??的值为??i?,那么执行<指令i>中的指 ?令。

? ?如果没有相应的?变量??的值,那么执行?ELSE 指 ?????令?

????如果需要几个不同的变量值执行相同的指令,那么可以将几个变量值写在一起用逗号隔开,后面接需要执行的指令。?

例:

CASE INT1 OF 1, 5: BOOL1 := TRUE; BOOL3 := FALSE; 2: BOOL2 := FALSE; BOOL3 := TRUE; ELSE

BOOL1 := NOT BOOL1; BOOL2 := BOOL1 OR BOOL2; END_CASE;

循环指令(FOR)

<步长Step size>} DO

<指令Instructions>使用FOR循环指令可以重复程序处理的过程。 语法:

整形变量INT_Var :INT;

FOR <整形变量INT_Var>:= <初始值INIT_VALUE> TO <终止值END_VALUE> {BY END_FOR;

{}中的内容可选的.

只要中的计数值不大于就重复执行 中的指令。在执行指令之前就检验这个条件,如果条件得不到满足就不执行 中的指令。当指令被执行一次之后<整形变量INT_Var>就增加 中的相应值。当得到大于的条件时就 停止循环。 例:

FOR Counter:=1 TO 5 BY 1 DO Var1:=Var1*2; END_FOR; Res:=Var1;

我们假设Var1的初始值为1,那么循环结束时变量 Var1的值为32。 循环指令( WHILE loop)

WHILE循环指令的用法与FOR循环指令相似,它们的不同之处在于WHILE循环的判断条件有些不同,它可以是任何布尔表达式。也就是说只要满足你给定的条件时,就执行循环指令。 语法:

WHILE <布尔表达式> <指令> END_WHILE;

只要<布尔表达式>的返回值为真TRUE,也就是条件满足的时候,<指令>将重复执行 ,直到 <布尔表达式>的返回值为假FALSE。

如果在第一次判断条件时就不满足,那么没有执行一次指令循环就结束了。当<布尔表达式>的返回值始终为真时,指令就无限的循环执行下去,进入死循环状态。这在编程时要尽量避免。 例:

WHILE counter<>0 DO Var1 := Var1*2; Counter := Counter-1; END_WHILE

WHILE循环和REPEAT循环在某种意义上来说比FOR循环更实用,因为在某种情况下我们不能确定循环的次数,在这种情况下只能用WHILE循环指令或者REPEAT循环指令。但是FOR循环指令的循环次数是一定的,所以用FOR循环指令编程可以避免死循环的出现。 循环指令(REPEAT loop)

REPEAT循环指令不同于WHILE循环指令的地方在于指令执行条件的判定顺序,REPEAT循环指令在判断条件之前就执行指令,也就是说REPEAT循环指令至少可以执行一次而不考虑判定条件。WHILE循环指令就不同,可能指令一次也不执行就终止循环。 语法:

REPEAT <指令>

UNTIL <布尔表达式> END_REPEAT;

当<布尔表达式>的返回值为真时,就是说判定条件满足的时候就终止循环。 如果<布尔表达式>在第一次检验的时候满足条件,那么整个循环只执行一 次。如果条件始终得不到满足,进入死循环状态,编程时需尽量避免这种情况的发生。 例:

REPEAT

Var1 := Var1*2; Counter := Counter-1; UNTIL Counter=0 END_REPEAT;

退出指令(EXIT instruction)

如果EXIT指令出现在FOR、WHILE、REPET循环指令里面的时候,循环将不考虑中断条件是否满足就无条件中断正在进行中的循环。

4.1 主窗口

打开 PLC-1131-3 DS的主窗口之后,你可以看到下列元件(从上到下)

??菜单栏???工具栏(可选)?

????对象管理器?有程序结构单元(POUs)选项卡、数据类型(Data types) 选项卡、资源(Resources) 选项卡 ??对象管理和编程区域之间的分隔条 ??编程区域?????消息窗口(可选)

第四章 PLC编程界面、环境和命令

??状态栏(可选)?

菜单栏(menulbar)

菜单栏位于主窗口的最上面,包括所有的菜单命令 工具栏(toolbar)

通过工具栏可以快速选择执行菜单栏中的一些常用的命令。在激活不同的窗口中时菜单栏中的快捷按钮会有所不同,只需用鼠标单击菜单栏中的快捷按钮就相当于执行了菜单栏中的命令。如果将鼠标放在工具栏的按钮上一段时间,会显示出该命令的名称。工具栏是可选的,如果不需要显示工具栏的时候,你可以将\菜单下\目录中的Desktop选项中toolbar去除

为了方便说明,用\表示\菜单下\命令。 对象管理器(Object Organizer)

对象管理器位于主窗口的左边。在对象管理器的下面有4个选项卡,Datatypes和

POUs,

Resources,用鼠标单击不同的选项卡就改变了相应的对象类

型。在说明书的后面将介绍如何建立、删除对象,怎么在对象管理器中管理各种对象。

屏幕分隔栏(Screen divider)

屏幕分隔栏是两个不重叠窗口的分界线,在PLC-1131-3 DS中在对象管理器 窗口与编程区窗口之间有一个屏幕分隔栏。编程区里面的定义变量窗口与程序主体窗口之间也有一屏幕分隔栏。你可以按鼠标左键移动屏幕分隔栏。 编程区域 (Work space)

编程区域位于主窗口的右侧,所有的对象编辑和函数库管理操作都是在这个区域进行操作的。PLC-131-3 DS的程序编辑将在说明书的后面作详细介绍。 在\菜单下,你可以找到所有的窗口管理命令。 消息窗口( Message window)

消息窗口在主窗口编程区的下面,它包含了编译、检验和比较的信息。 当程序编译出错时,鼠标双击消息窗口中的一条错误信息,程序将跳转到对应的

{bmc bild4_24.bmp}

\

? Example of project statistics

在程序结构单元、数据类型或者全局变量的对象中查找文本格式。

当执行此命令时弹出一个对话框,选择希望查找的对象之后单击OK按钮,然后弹出查找对话框,如果在对象中找到了对应的文本,那么对象被载入适当的编辑器,同时显示它的位置。

\

在程序结构单元、数据类型或者全局变量的对象中替换文本格式。

4.3建立和删除对象

此节介绍如何对对象进行处理。 Object

程序结构单元,数据类型,资源(包括存取变量,全局变量,变量设置 ,采样轨迹图,任务设置,PLC设置等)都可被称之为对象。为了构造整个工程可以在中间插入文件夹。所有工程对象都可以在对象管理器中找到。

为了使比较大的工程比较明确清楚,可以将程序结构单元,数据类型,资源和全局变量等系统的结合到一起放进一文件夹中。

你可以按照你的需要设立多级文件夹。如果在文件夹的符号的前面有一加号

就说明这个文件夹中包含了对象或者文件夹,用鼠标单击加号就展开这一层文件夹。展开文件夹之后如果单击文件夹符号前面的减号就文件夹就被关闭。其实这里的操作与windows操作方法很相似。可以用鼠标左键拖动对象到其它的地方。可以用\命令建立更多的文件夹。

注意:文件夹对程序没有影响,只是使工程结构更加清楚明了。 {bmc bild4_27.bmp}

? Example of folders in the Object Organizer

\

用此命令在一个对象中插入一个新的文件夹。如果此时已经选中了一个文件夹,那么此文件夹是被选中文件夹的下级目录文件夹,否则该文件夹是选中文件夹的同级文件夹目录。

选中对象管理器中的某个对象,用鼠标右键单击该对象后弹出context menu , 其中包含了一些常用的有关对象的命令。 \

展开选中的目录文件夹,相当于用鼠标左键单击文件夹左面的加号。 \

合并已经展开的文件夹目录,相当于用鼠标左键单击文件夹符号左边的减号 \快捷方式:

用此命令将选中的对象或者包含几个对象的文件夹从对象管理器中删除。为了安全,系统将询问是否确定从工程中删除此对象,确定之后删除对象。如果用\\命令,对象被剪切到粘贴板中。 \快捷方式:

用此命令建立一个新对象。对象的类型(程序结构单元、数据类型、全局变量等)依赖于在对象管理器中选择的选项卡。在弹出的对话框中输入新对象的名称,且不能与已经存在的文件同名。

如果处理的是程序结构单元,还需选择程序结构单元的类型(程序、函数和功能块)和编程的语言格式。 {bmc bild4_28.bmp}

? Dialog box for creating a new POU

如果使用Edit\命令将对象从粘贴板中粘贴出来时,就不会弹出对话框。 \快捷方式:

用此命令重命名当前选中的对象。对象名不能与已经存在的文件同名。 {bmc bild4_29.bmp}

\

此命令只能用于程序结构单元,可以将SFC, ST, FBD, LD,和IL编程格式的程序结构单元转换成IL, FBD, 和LD编程格式。

转换之前工程必须经过编译,选择要转换成的编程语言格式之后给程序结构单元重新命名,且不能与已存在的文件同名。接着用鼠标左键单击OK按钮就完成了转换。

{bmc bild4_30.bmp}

\

此命令将选中的对象复制到希望的结构程序结构单元中,且可以以新的名称保存,新的文件名在弹出的对话框中输入。

如果使用\命令将对象复制到剪贴板中,就不会弹出相应的对话框。 {bmc bild4_31.bmp}

\快捷方式:

打开选中的对象。也就是将选中的对象载入到对应的编辑器中。另外还可以用鼠标双击要打开的对象将对象打开。

? Dialog box for renaming a POU

? Dialog box for converting a POU

? Dialog box for copying a POU

{bmc bild4_32.bmp}

? Dialog box for choosing the object to be opened

\

此命令打开对话框分配不同用户组对对象的读写权力。对话框如下图所示 {bmc bild4_33.bmp}

共有三种不同的设置:

??No Access: 用户组的成员可以打开对象。

??Read Access:用户组的成员能够打开对象并且读取对象 的内容,但是不能修改对象的内容。

??Full Access: 用户组的成员可以打开对象,并且可对对象进行读取和修改。

此设置相对于在对象管理器中选中的对象,如果选中Apply to all 选项,设置就运用于工程中所有的程序结构单元、数据类型和资源。设置用户组的密码,那么当该用户组中的成员输入正确的密码后就可对对象进行相应的操作。 \

With this command you can open and show single instances of function blocks. The function block whose instance should be open must first be selected in the Object Organizer before you can execute this command. In the resulting dialog box you can choose the desired instance of this function block.

? Dialog box for assigning access rights

Note: Instances can be opened only after logging in! (Project was correctly compiled and sent with \ to the PLC). {bmc bild4_34.bmp}

? Dialog box for opening an instance

\

With this command you open a window which shows the call tree of the object chosen in the Object Organizer. For this the project must be compiled (see \). The call tree contains both calls for POUs and references to data types. {bmc bild4_35.bmp}

\

With this command you open a dialog box which makes possible the output of all application points for a variable, address, or a POU. For this the project must be compiled (see \all\).

Choose first the category Variable, Address, or POU and then enter the name of the desired element. By clicking on the button Get References you get the list of all application points. Along with the POU and the line or network number, it is shown whether this point has read only access or full access and whether it is a local or global variable.

When you select a line of the cross reference list and press the button Go To or doubleclick on the line, then the POU is shown in its editor at the corresponding point. In this way you can jump to all application points without a time-consuming search.

In order to make processing easier, you can use the Send to message window button to bring the current cross reference list into the message window and from there change to the respective POU. {bmc bild4_36.bmp}

\

用此命令显示在工程中定义了但在工程里始终没有使用的变量列表。命令只有在工程经过编译后才有效。如果没有未使用的变量,将会弹出如下窗口: {bmc bild4_37.bmp}

? Example of a call tree

? Dialog box and example of a cross reference list

? Unused variables of a project

选择一个变量后按下Go To 按钮或者双击该变量,就会改变含有该变量的对象的内容。

\

用此命令恢复当前的对象到上一次保存的状态。对象恢复到最近一次的\\操作或者最近一次自动保存所对应的版本。

4.4 编辑命令

所有编辑命令都在\菜单下面: \快捷方式: +

撤销对当前编辑窗口最近所作的一次操作。重复这个命令可以撤消所做的操作直到编辑的起始点。。

注意: 命令\ 和 \只运用于当前窗口。每个窗口都有自己的动作列表。如果需要在数个窗口中执行撤消和重复命令时,就必须激活对应的窗口。 \

快捷方式 : + 重做撤销命令所做的操作。 \ 在工具栏中的符号:

快捷方式: ++

剪切命令。将当前编辑器中选中的内容剪切到粘贴板中,且删除编辑器中的内容。对于对象管理器的操作情况类似,选中需要剪切的对象执行剪切操作,但是并不是所有的对象都会被删除,例如PLC Configuration被剪切到粘贴板中,其本身并不被删除。

\在工具栏中的符号: 快捷方式: +

复制编辑器中选中的内容到剪贴板中。该命令不删除编辑器中选中的内容,所以编辑窗口中的内容不发生变化。对对象管理器的操作与编辑器的操作类似。 \在工具栏中的符号: 快捷方式: +

粘贴命令。将剪贴板中的内容粘贴到编辑窗口的当前位置,同样粘贴命令可 \快捷方式:

删除命令。删除在编辑窗口中选中的内容,此命令不影响剪贴板中的内容。对于对象管理器此命令将删除选中的对象。 \工具栏中的符号:

查找命令。在当前的编辑窗口中寻找特定的文本信息,执行此命令时将弹出查找对话框,在Find what输入域中输入想要查找的文本信息。 {bmc bild4_38.bmp}

\工具栏中的符号: 快捷方式:

查找下一个命令。此命令以最近一次\命令中的查找文本为对象查

? Find dialog box

找下一个与该文本一致的文本信息。 \

替换命令。查找文本对象的同时将其转换为制定的格式。替换对话框如下图所示。 {bmc bild4_39.bmp}

\快捷方式:

此命令提供一个对话框,此对话框中包括了所有可能的输入。这个对话框的左列是可供选择的输入类别,右列则是该类中包含的输入。确定之后鼠标单击OK按钮,输入就被插入到当前编辑窗口的光标处。对话框如下图所示: {bmc bild4_40.bmp}

In some positions (e.g. in the watch list) multilevel variable names are necessary. At first the Input Assistant dialog box contains a list of all POUs along with a single point for the global variables. After each POU name there is a point. Doubleclicking with the mouse or pressing opens a list of the variables for a selected POU. Instances and data types can, when appropriate, be opened again. By pressing OK you accept the selected variable. {bmc bild4_41.bmp}

\快捷方式:

当工程编译出错时执行此命令,程序将跳转到下一个错误对应编辑窗口的出错处,与此同时出错处被选中,消息窗口中显示相应的出错信息。

? Dialog box for find and replace

? Input Assistant Dialog Box

? Input Assistant dialog box with multilevel variable names

\快捷方式: +

当工程编译出错时执行此命令,程序将跳转到前一个错误对应编辑窗口的出错处,与此同时出错处被选中,消息窗口中显示相应的出错信息。

4.5 选项设置 (Options)

在 PLC-1131-DS中,主窗口的界面并不是一成不变的,你可以根据自己的喜

好选择自己喜欢的界面,此外还可以作其它的设置。这是通过\命令来实现的。 \

启动此命令时就打开了设置选项对话框。选项分成几个不同的种类,在设置框中选择希望改变的种类。 其中包括以下几种类别:

??Load & Save (载入&保存) ??User information (用户信息) ??Editor (编辑) ??Desktop (桌面) ??Color (颜色) ??Directories (目录) ??Build (构造) ??Passwords (密码)

Load & Save选项

如果选择此选项,你可以看到如下图所示的对话框: 在选项复选框中选择希望激活的选项,在选项前打(?)。

选中Create Backup选项,PLC-1131-3 DS将每次存盘的同时建立一个后

缀名为\的备份文件。当文件损坏时,就可以恢复备份文件,恢复最后一次保存的文件。

选中AutoSave选项,在编程的同时以一定的时间间隔将工程以后缀名为\的文件自动保存,时间间隔由Auto Save Interval设定 。

如果某些不正常的原因而导致PLC-1131-3 DS关闭(如电源掉电),文件一般不会损坏,当再次打开此文件的时候将会显示下面的信息。你可以决定是打开原始的文件还是打开自动保存的备份文件。

选Ask for project info选项,那么当你保存一个新工程或者以一个新的工程名保存工程时,将自动调出工程信息对话框。你也可以用\命令处理工程信息。 User information选项

在选项对话框中选此选项,你就可以看到如下对话框:

{bmc bild4_7.bmp}

用户信息包括用户名称,公司名称等与工程一起保存的信息。 Desktop选项 对话框如下所示: {bmc bild4_10.bmp}

选择Tool bar选项,具栏快捷方式按钮将显示工在菜单栏的下面: 选择Status bar选项,将显示状态栏 Online in Security mode(在线安全模式)选项 Colors选项

选项对话框如下所示:

? Options dialog box of the category User information

? Options dialog box of the category Desktop

{bmc bild4_11.bmp}

? Options dialog box of the category Color

你可以编辑PLC-1131-3 DS的颜色设置,你可以改变 Line numbers(行号), Breakpoint positions(断点位置),Set breakpoint (设置断点),the Current position(当前位置),Reached Positions(到达位置),Monitoring of Boolean values(布尔变量值)的显示颜色。

选择对应的指示按钮,就会弹出颜色设置对话框,如下图所示 {bmc bild4_12.bmp}

Directories选项 对话框如下图所示: {bmc bild4_13.bmp}

指定函数库和编译文件存放的目录。 Build选项

Build选项对话框如下图所示: {bmc bild4_14.bmp}

选中Save before compile选项,在工程每次编译之前都进行保存 。

Number of the data segments决定为你的PLC工程保留多少空间,如果在Build 的过程中,出现了\的提示信息,你 就可以通过增加data segment数量的方法来解决。 Passwords选项

在选项对话框中选择此选项,就可以看到如下所示的对话框:

? Dialog box for setting colors

? Options dialog box of the category Directories

? Options dialog box of the category Build

{bmc bild4_15.bmp}

? Options dialog box of the category Passwords

为了保护你的文件,可以设置密码防止你的文件不被其他人打开或修改。 在Password输入域中输入你希望设置的密码(以*号显示),接着在 Confirm Password中再次输入确认密码,最后关闭对话框。假如出现提示信息\password does not agree with the confirmation\,说明键入密码时两次输入不 相同。建立密码后只有在输入正确的密码时,才可以打开工程文件。

Write Protection Password中的输入是工程写保护密码,这样保护工程不被修改。你可以编译工程,载入PLC,仿真等操作,但是不可以作修改。

4.6 在线命令(Online Functions)

所有的在线命令都可以在\\命令菜单中找到。某些命令只有在激活某些特定的编辑窗口之后才有效,在线命令只有在上位编程系统与PLC连接好之后才有效。 \在工具栏中的符号:

登陆命令。此命令将上位机与PLC通过总线进行连接(或者启动仿真程序),系统进入在线模式。

如果对工程做过修改之后没有经过编译,那么首先需要进行编译(需要通过\命令)。假设编译过程中发生错误PLC-1131-3 DS 就不会转换成在线模式。

成功登陆之后,所有的在线命令变有效,所有定义变量的当前值被监视。用\命令将在线模式转换成离线模式 \在工具栏中的符号:

注销命令。用此命令断开与PLC之间的连接,仿真模式中止,转换到离线模式。

\

此命令将编译过的工程下载到PLC中。

如果使用的是C代码生成器,就具有就较高的下载优先权,并调用建立下载文件的C语言编译器 。否则下载文件在编译的过程中建立。 \在工具栏中的符号: 快捷方式:

此命令启动PLC中或者仿真模式下的程序。此命令在执行了\命令之后就可立即执行,或者PLC中的用户程序被\

\命令终止,用户程序停止在断点处,循环结束等情况下用此命令 启动程序的执行。 \在工具栏中的符号:

停止PLC中或者仿真模式下两个循环之间程序的执行,用\命令重新启动程序。 \

如果用特殊值初始化变量。If you have initialized the variables with a specific value, then this command will reset the variables to the initialized value. All other variables are set at a standard initialization (for example, integers at 0). As a precautionary measure, the PLC-1131-3 DS asks you to confirm your decision before all of the variables are overwritten.

Use the \ command to restart the program. \ Breakpoint\在工具栏中的符号: 快捷方式:

此命令在当前活动窗口设置断点。如果已经在当前窗口设置了断点,断点将被去处。断点位置取决于当前窗口中程序结构单元的编程格式。

在文本结构编程语言格式中,断点设在当前光标所在的行,若此行前面的行号为深灰色则该行被设置为断点。在文本编辑器中,可以通过鼠标单击行号来设置或者去除断点。

如果设置了断点,断点所对应的行号将以蓝色背景色显示。当程序执行到断点的时候 ,对应的区域将以红色背景色显示。可以用\, \\或者 \命令继续执行中断了的程序。 你也可以通过断点设置对话框来设置或者去除断点 Online \

此命令打开一对话框来编辑整个工程的断点,对话框将显示最近设置的断点。为了设置断点先在POU组合框中选择一个程序结构单元,然后在Location组合框中选择行号,最后用鼠标单击Add按钮,这样断点就被添加到列表中。单击Delete按钮将删除列表中突出显示的断点,Delete All按钮将删除所有的断点。,你可以在断点列表中选择一断点,然后单击Go to按钮跳转到文本编辑器中相应的位置。 {bmc bild4_42.bmp}

? Breakpoint Editing Dialog Box

To set or delete breakpoints, you can also use the \ command.

\ 快捷方式: +

此命令执行一个PLC循环,一个循环结束后程序将停止执行。 单循环状态将在执行了\命令之后停止。 \ 快捷方式: + (写入变量值) Shortcut: (强制变量值)

为了改变变量的值,你可以在login之后用鼠标双击该变量或者选中后用

键来改变变量的值。你可以在弹出的对话框中输入希望的值,如果是布尔变量将不会弹出对话框 ,新的布尔变量将会以红色显示。完成了变量的输入之后,用此命令就可以强制修改变量的值。 {bmc bild4_43.bmp}

\快捷方式: +

此命令结束PLC中的变量强制,所有的被强制修改的变量将恢复其初始值。如果没有变量被强制,该命令将没有实际效果。

In order to force the values, use the \ command. \

当处于仿真模式(Simulation Mode)在断点处终止执行时,运行该命令将弹出一对话框,里面包含了在当前调用堆栈中的程序结构单元列表。 {bmc bild4_44.bmp}

? Dialog Box for Writing a New Variable Value.

? Example of a Call Stack

第一个程序结构单元总是PLC_PRG,因为PLC_PRG是程序执行的起始点。最后的程序结构单元是正在被执行的程序结构单元。当你选择一个程序结构单元,然后用鼠标单击Go to按钮的时候,被选中的程序结构单元将被载入到其编辑器中。

\

如果选中了仿真模式 (Simulation Mode) ,菜单项的前面将出现 (?) 标志程序处于仿真状态。

仿真模式用来测试工程,计算机和仿真模的通信是通过信息窗口机构。如果程序不是在仿真模式下运行的时候,程序将在PLC中运行。

4.7 窗口设置命令(Window set up)

在 \ 菜单条下,包括了所有的管理窗口的命令。在菜单条的末尾包含

了所有的打开的窗口。你可以用鼠标单击的方法切换到相应的窗口。 \水平平铺工作区中的所有窗口。 \垂直平铺工作区中的所有窗口。 \层叠工作区中的所有窗口。 \关闭工作区中的所有窗口。 \快捷方式: +

用此命令打开或者关闭信息窗口。

第五章 PLC-1131-3 DS中的文本编辑器 5.1 定义变量编辑器

定义变量编辑器用来定义程序结构单元的变量、全局变量、数据类型的定义等。 所有的程序结构单元包括定义变量部分和程序主体部分。它们中间由屏幕分隔栏分开且可以自由拖放。单击鼠标右键,回弹出context menu ,其中包含了一些极为常用的命令。

定义变量部分(Declaration Part)

在程序中将要使用的变量必须在定义变量部分进行定义,否则程序对未定义的变量将不能进行识别。变量包括:输入变量、输出变量、局部变量、保持变量和常量。定义变量的语法是根据IEC1131-3的标准,下面是一个正确的定义变量的例子

Image 0.1: Declaration Editor

关键字(Keywords)

在所有的编辑器中,关键字均以大写字母的形式编辑。关键字不用作为变量。

变量定义 (Variables declaration)

变量定义的语法如下所示:A variables declaration has the following syntax: <标识符> {AT <地址>}:<数据类型> {:=<初始值>}; {}里面的内容是可选的 。.

变量标识符中不能包括空格键或者其它特殊字符但可以包含下划线(如

\和\是两个不同的标识符),不能多次定义同一个变量标识符,变量标识符不可以与关键字同名,不区分大小写字母字符。 变量定义中可包含初始化值。它是通过\操作符来实现的 例:

var1:INT:=12;

AT Declaration

如果希望将变量直接与PLC输入输出地址产生关系,可以用AT关键字实现。这样用的好处就是用一个有意义的名称来代表地址,便于修改程序和增加程序的可读性。 例:

Home_X_Switch AT %IX6.3:BOOL;

(*整形变量,初始值为12*)

Machine_Stop_Lamp AT %QX101.6:BOOL;

\

用此命令可以打开一个包含所有关键字列表的对话框,从中选定一关键字,按确定按钮就将所需的关键字插入到光标当前位置。通过Input Assistant命令中的Declarations类,可以得到同样的效果。 语法颜色 (Syntax Coloring)

在文本编辑器和定义变量编辑器中,可以通过文本的颜色知道文本的编辑是否存

在语法上的错误。这样可以 尽量避免错误的产生和较快的发现错误。 下列颜色将被使用:

??蓝色 ??绿色 ??粉红色 ??Red ??Black

定义变量向导(Autodeclaration)

如果对定义变量不是很熟悉,可以用Option对话框Editor类中的Autodeclaration 命令。执行该命令之后,弹出一对话框 ,在该对话框的帮助下可以方便的定义变量了。对话框如下图所示: {bmc bild5_2.bmp}

关键字 注释

常量(如布尔变量值(TRUE/FALSE)) 输入错误 (如关键字、字母大小写等等) 变量、常量、赋值操作符等。

? Dialog Box for Declaration of Variables

变量中可以包含变量标识符、地址、数据类型、初始值、注释等内容。 注释(Comment)

用户注释内容倍加在两个\之间,这样增加程序的可读性。还可以用注释符号将一段程序屏蔽,便于调试。

5.2 文本编辑器

PLC-1131-3 DS中的文本编辑器的使用是相当方便的,支持句法颜色功能。

Image 0.2: Text Editors for the Instruction List and Structured Text

单击鼠标右键会弹出context 菜单,里面包含了一些最为重要和常用的命令。 文本编辑器使用下列菜单命令: \

执行此命令之后,弹出一对话框,里面包括了所有的运算符。从列表中选择一运

算符后,单击OK按钮,运算符被插入到光标的当强位置。 \

执行此命令之后,弹出一对话框,里面包含了所有的变量。你可以选择是否显示全局变量、局部变量和系统变量。从列表中选择一变量,然后用鼠标左键单击OK按钮后,变量被插入到光标的当前位置。 \插入函数。

\插入功能块。

\

用此命令设置监视窗口。在文本编辑器中窗口在监视时被分为两个部分,程序位于窗口的左面,窗口的右面是对应程序中含有的变量的监控。

你可以指定监控窗口的宽度(Width)和位于同一行中的两个变量之间的距离。 {bmc bild5_5.bmp} 如何设置断点?

如果想要在程序中设置断点,用鼠标左键单击希望设置断点的那一行的行号,然后用设置断点命令(\设置断点。若该行被设置成为断点,那么行号的颜色将从暗灰色变成深蓝色,断点将在 PLC中被激活。 删除断点

如果希望删除已经设置的断点,同样先选中断点所在的行,通过(\Breakpoint\命令,或者功能键或工具栏中的快捷方式删除断点。 文本编辑器中的行号

离线模式下单击行号将选中整行。

在线模式下,行号的背景色表示每一行的断点状态:

? Monitoring Options Dialog Box

? 暗灰色: 此行可能为断点位置 ? 深蓝色: 此行设置了断点 ? 红色: 程序执行到此点

6.1 信号接口概述

第六章

PLC与数控系统通过总线连接,这样就可以在PLC 与数控系统之间进行通信。这样就可以将数控系统的状态通知给PLC,也可以用PLC来影响数控系统的的相关操作。CNC-interface是传递信息的接口,是通过对应位的电平信号的高低来传递信息,32位组成一\。 典型的运用有: - - -

信号接口由两部分组成 - -

启动和停止NC程序 断开和闭合 CNC 控制环

识别NC程序中的辅助功能代码(BCD码)

CNC inputs,PLC程序能指定,CNC只能读; CNC outputs,PLC只能读,CNC能指定。

某些信号可以被单独处理,有一些信号要与其它信号结合起来一起考虑,而有些信号只能共同考虑。

有些信号是静态的,而有些信号是动态的。换句话说,有些信号只关心其值,而有些信号我们主要关心的是它们的值的变化。 正负逻辑:

有一些接口信号是负逻辑,就是低电平触发信号 。这些信号在信号名的后面用\n\做标记,与正逻辑区分开来。 例:

INEMERGENCn

0: 激活警停状态

1: 不激活警停状态

0: 非复位状态

ON_RESET

1: 复位状态被激活

6.2 信号接口一览

输入CNC的信号和对应的DWORDs使用的符号的前缀为 IN ( Input to the CNC).

从CNC 输出的信号和对应的DWORDs 使用的符号前缀为 ON ( Output from the CNC).

因为接口扩展到128个DWORD,这样就使得CNC中所有功能同时可用成为可能。一个DWORDS包含了32个信号。 后面是接口信号集合:

NC-Input Bitn

1 INEMERGENCn 2 IN_START 3 IN_STOPn 4 IN_TRANSF 5 ENABLE 6 free 7 free

ON_CYCLEON ON_STOPNCn ON_STARTNC

ON_AUTO ON_SINGLE

INGENERAL1

DWORD 1

ONGENERAL1

NC-output

--------------------------------------------------------------------------------------

ON_MDI ON_JOGMODE

ON_HOMING

free

8 INPLAYBACK 9 IN_AFC_EN 10 free 11 free 12 free

free free

ON_EMERGn

13 free 14 free 15 free 16 free 17 free 18 free 19 free 20 free 21 free 22 free 23 free 24 free 25 free 26 free 27 free 28 free 29 free 30 free 31 free 32 free

ON_PRG_STP ON_PRG_END ON_RESET ON_NO_CNTR ON_HOME_OK ON_NCERROR ON_ADDKEY1 ON_ADDKEY2 ON_PROGRAM ON_ADMISSN ON_PANEL ON_RETREAT ON_BACKW ON_TEACHED ON_BLKCHNG free free free free free

NC-Input

NC-output

------------------------------------------------------------------------------------ INGENERAL2

DWORD 2

ONGENERAL2

Bitn

1 IN_REPEAT

2 IN_INTERVA 3 IN_INSPECT 4 free 5 free 6 free 7 free 8 free

9 IN_MIRR_STROBE 10 ... free

28 29 free 30 free 31 free 32 free

ON_STAND ON_RAPID

ON_THREAD

ON_HOMEOK ON_INTVEND ON_INTRET ON_INTVHLD free

free

free

ON_STROBE1 ON_STROBE2 ON_STROBE3 ON_STROBE4

NC-Input

NC-output

--------------------------------------------------------------------------------------

IN_DRIVEON

Bitn

1 IN_DRON01 2 IN_DRON02 3 IN_DRON03 4 IN_DRON04 5 IN_DRON05 6 IN_DRON06 7 IN_DRON07 8 IN_DRON08 9 IN_DRON09 10 IN_DRON10 11 IN_DRON11 12 IN_DRON12 13 IN_DRON13 14 IN_DRON14 15 IN_DRON15 16 IN_DRON16 17 IN_DRON17 18 IN_DRON18 19 IN_DRON19 20 IN_DRON20 21 IN_DRON21 22 IN_DRON22 23 IN_DRON23 24 IN_DRON24 25 IN_DRON25 26 IN_DRON26 27 IN_DRON27 28 IN_DRON28

DWORD 3

ONBCDWORD1

ON_BCD01 ON_BCD02 ON_BCD03 ON_BCD04 ON_BCD05 ON_BCD06 ON_BCD07 ON_BCD08 ON_BCD09 ON_BCD10 ON_BCD11 ON_BCD12 ON_BCD13 ON_BCD14 ON_BCD15 ON_BCD16 ON_BCD17 ON_BCD18 ON_BCD19 ON_BCD20 ON_BCD21 ON_BCD22 ON_BCD23 ON_BCD24 ON_BCD25 ON_BCD26 ON_BCD27

ON_BCD28

29 IN_DRON29 30 IN_DRON30 31 IN_DRON31 32 IN_DRON32

ON_BCD29 ON_BCD30 ON_BCD31 ON_BCD32

NC-Input NC-output

--------------------------------------------------------------------------------------

IN_DRIVEEN

DWORD 4

ONBCDWORD2

Bitn

1 IN_DREN01 2 IN_DREN02 3 IN_DREN03 4 IN_DREN04 5 IN_DREN05 6 IN_DREN06 7 IN_DREN07 8 IN_DREN08 9 IN_DREN09 10 IN_DREN10 11 IN_DREN11 12 IN_DREN12 13 IN_DREN13 14 IN_DREN14 15 IN_DREN15 16 IN_DREN!6 17 IN_DREN17 18 IN_DREN18 19 IN_DREN19 20 IN_DREN20 21 IN_DREN21 22 IN_DREN22 23 IN_DREN23 24 IN_DREN24 25 IN_DREN25 26 IN_DREN26 27 IN_DREN27 28 IN_DREN28

ON_BCD33 ON_BCD34 ON_BCD35 ON_BCD36 ON_BCD37 ON_BCD38 ON_BCD39 ON_BCD40 ON_BCD41 ON_BCD42 ON_BCD43 ON_BCD44 ON_BCD45 ON_BCD46 ON_BCD47 ON_BCD48

ON_BCD49 ON_BCD50 ON_BCD51 ON_BCD52 ON_BCD53 ON_BCD54 ON_BCD55 ON_BCD56 ON_BCD57 ON_BCD58 ON_BCD59

ON_BCD60

29 IN_DREN29 30 IN_DREN30 31 IN_DREN31 32 IN_DREN32 NC-Input

ON_BCD61 ON_BCD62 ON_BCD63 ON_BCD64

NC-output

-------------------------------------------------------------------------------

IN_HOMING

Bitn

1 IN_HOME01n 2 IN_HOME02n 3 IN_HOME03n 4 IN_HOME04n 5 IN_HOME05n 6 IN_HOME06n 7 IN_HOME07n 8 IN_HOME08n 9 IN_HOME09n 10 IN_HOME10n 11 IN_HOME11n 12 IN_HOME12n 13 IN_HOME13n 14 IN_HOME14n 15 IN_HOME15n 16 IN_HOME16n 17 IN_HOME17n 18 IN_HOME18n 19 IN_HOME19n 20 IN_HOME20n 21 IN_HOME21n 22 IN_HOME22n 23 IN_HOME23n 24 IN_HOME24n

DWORD 5

ONINPOS

ON_INP01 ON_INP02 ON_INP03 ON_INP04 ON_INP05 ON_INP06 ON_INP07 ON_INP08 ON_INP09 ON_INP10 ON_INP11 ON_INP12 ON_INP13 ON_INP14 ON_INP15 ON_INP16 ON_INP17 ON_INP18 ON_INP19 ON_INP20 ON_INP21 ON_INP22 ON_INP23

ON_INP24

本文来源:https://www.bwwdw.com/article/27ax.html

Top