全国服务热线 15221406036

西门子6ES7212-1AB23-0XB8产品特点

更新时间:2024-05-08 07:10:00
价格:请来电询价
联系电话:
联系手机: 15221406036
联系人:聂航
让卖家联系我
详细介绍

西门子6ES7212-1AB23-0XB8产品特点

S7-300的数据类型分以下三种:基本数据类型、复合数据类型和参数类型。

  一、基本数据类型

  1、位(bit)

  常称为BOOL(布尔型),只有两个值:0或1。如:I0.0,Q0.1,M0.0,V0.1等。

  2、字节(Byte)

  一个字节(Byte)等于8位(Bit),其中0位为低位,7位为高位。如:IB0(包括I0.0~I0.7位),QB0(包括Q0.0~Q0.7位),MB0,VB0等。范围:00~FF(十进制的0~255)。

  3、字(Word)

  相邻的两字节(Byte)组成一个字(Word),来表示一个无符号数,因此,字为16位。如:IW0是由IB0和IB1组成的,其中I是区域标识符,W表示字,0是字的起始字节。需要注意的是,字的起始字节(如上例中的“0”)都必须是偶数。字的范围为十六进制的0000~FFFF(即十进制的0~65536)。在编程时要注意,如果已经用了IW0,如再用IB0或IB1要特别加以小心。

  4、双字(Double Word)

  相邻的两个字(Word)组成一个双字,来表示一个无符号数。因此,双字为32位。如:MD100是由MW100和MW102组成的,其中M是区域标识符,D表示双字,100是双字的起始字节。需要注意的是,双字的起始字节(如上例中的“100”)和字一样,必须是偶数。双字的范围为十六进制的0000~FFFFFFFF(即十进制的0~4294967295)。在编程时要注意,如果已经用了MD100,如再用MW100或MW102要特别加以小心。

  以上的字节、字和双字数据类型均为无符号数,即只有正数,没有负数。

  5、16位整数(INT,Integer)

  整数为有符号数,高位为符号位,1表示负数,0表示正数。范围为-32768~32767。

  6、32位整数(DINT,Double Integer)

  32位整数和16位整数一样,为有符号数,高位为符号位,1表示负数,0表示正数。范围为-2147483648~2147483647。

  7、浮点数(R,Real)

  浮点数为32位,可以用来表示小数。浮点数可以为:1.m×2e,其存储结构如图所示:

  8、常数的表示方法

  常数可以是字节、字或双字,CPU以二进制方式存储,也可以用十进制,十六进制ASCII码或浮点数形式来表示。如下图所示: 

  说明:(1)S5T#格式为:S5T#aD_bH_cM_dS_eMS,其中a,b,c,d,e分别是日,小时,分,秒和毫秒的数值,输入时可以省掉下划线,如表中所示。

  (2)D#取值范围为:D#1990_1_1~D#2168_12_31。

  二、复合数据类型

  用户通过复合基本数据类型而生成就是复合数据类型。

  复合数据类型包括以下几种:

  1、数组(ARRAY)

  将一组同一类型的数据组合在一起组成一个单位就是数组。

  2、结构(STRUCT)

  将一组同不同类型的数据组合在一起组成一个单位就是结构。

  3、字符串(bbbbbb)

  字符串是由多254个字符组成的一维数组。

  4、日期和时间(DATE-AND-TIME)

  用于存储年、月、日、时、分、秒、毫秒和星期的数据。占用8个字节,BCD编码。星期天代码为1,星期一~星期六代码分别是2~7。

  如:DT#2004_07_15_12:30:15.200为2004年7月15日12时30分15.2秒。

  5、用户定义的数据类型(UDT,User-Defined Data Types)

  由用户将基本数据类型和复合数据类型组合在一起形成的数据类型。

  可以在数据块DB和变量声明表中定义复合数据类型。

  三、参数类型

  是为在逻辑块之间传递参数的形参(bbbbal bbbbbeter,形式参数)定义的数据类型。

IEC61131-3的编程语言包括图形化编程语言和文本化编程语言。图形化编程语言包括:梯形图(LD-Ladder Diagram)、功能块图(FBD - Function Block Diagram)、顺序功能图(SFC - Sequential Function Chart)。文本化编程语言包括:指令表(IL-Instruction List)和结构化文本 (ST-Strutured Text)。IEC61131-3的编程语言是IEC工作组对世界范围的PLC厂家的编程语言合理地吸收、借鉴的基础上形成的一套针对工业控制系统的国际编程语言标准,它不但适用于PLC系统,而且还适用于更广泛的工业控制领域;IEC61131-3 的编程工具提供对现场总线系统的支持,并对现场总线装置的软件设计产生了很大影响。 字串1

本专题将分两部分介绍IEC61131-3的编程语言,本文是IEC61131-3编程语言的部分,重点介绍IEC61131-3的两种文本化编程语言;第二部分重点介绍IEC61131-3的两种三种图形化编程语言,将在下一篇文章作介绍。

字串6


一、结构化文本(ST) 字串5

结构化文本(ST)是一种的文本语言,可以用来描述功能,功能块和程序的行为,还可以在顺序功能流程图中描述步、动作和转变的行为。

字串5


结构化文本(ST)语言表面上与PASCAL语言很相似,但它是一个专门为工业控制应用开发的编程语言,具有很强的编程能力用于对变量赋值、回调功能和功能块、创建表达式、编写条件语句和迭代程序等。结构化文本(ST)非常适合应用在有复杂的算术计算的应用中。

字串9


结构化文本(ST)程序格式自由,可以在关键词与标识符之间任何地方插入制表符、换行字符和注释。对于熟悉计算机语言开发的人员来说,结构化(ST)语言更是易学易用。此外,结构化文本(ST)语言还易读易理解,特别是用有实际意义的标识符、批注来注释时,更是这样。

字串1


1.1 操作符 字串2

结构化文本(ST)定义了一系列操作符用于实现算术和逻辑运算,如逻辑运算符:AND,&,XOR,OR; 算术运算符:<, >, <=, >=, =, <>, +, -, MOD, / 等,此外,还定义了这些操作符的优先级。如下是操作符预算的两个例子:

字串7


Start := Oilpress AND Stream AND Pump; 字串8

V : = K*(-W*T) 字串7

1.2 赋值语句

字串9


结构化文本(ST)程序既支持很简单的赋值语句,如 X:=Y, 也支持很复杂的数组或结构赋值,如Profile[3]:=10.3+SQRT((Rate+2.0)), Alarm.TimeOn:=RCT1.CDT。

字串1


1.3在程序中调用功能块

字串1


在结构化文本(ST)程序中可以直接调用功能块。功能块在被调用以前,输入参数被分配为缺省值;在调用后,输入参数值保留为后一次调用的值。功能块调用的格式如下: 字串9

FunctionBlockInstance(

字串8


bbbbbbbbbbeter1:=Valuebbbbbbbbbb1, 字串7

bbbbbbbbbbeter2:=Valuebbbbbbbbbb2, …);

字串7


Valuebbbbbbbbbb1……ValuebbbbbbbbbbN是符合功能块数据类型输入变量,bbbbbbbbbbeter1……bbbbbbbbbbeterN功能块的输入参数。FunctionBlockInstance是要调用的功能块。 字串8

1.4结构化文本(ST)程序中的条件语句

字串2


条件语句的功能是,某一条件满足时执行相应的选择语句。结构化文本(ST)有如下的条件语句: 字串6

IF …THEN…ELSE条件语句 字串2

该选择语句依据不同的条件分别执行相应THEN及ELSE语句。该条件语句可以嵌套入另一条件语句中,以实现更复杂的条件语句。条件语句的格式如下: 字串1

IF THEN 字串5

  字串9

ELSE

字串1


< statements2…> 字串7

END_IF;

字串6


“boolean bbbbbbbbbb”可以是“true”或“false”,根据“true”或“false”的情况,程序执行相应的statements1或statements2语句。 字串7

CASE 条件语句 字串4

该选择语句的执行方向取决于CASE语句的条件, 并有一返回值。实例见后的应用举例。该条件语句的格式如下: 字串6

CASEOF 字串1

< integer selector value1> : < statements1…>

字串9


< integer selector value2> : < statements2…>

字串3


……

字串9


ELSE 字串5

< statements …> 字串1

END_CASE; 字串3

“integer bbbbbbbbbb”可以是一个数值,根据数值的不同执行相应的statements1或statements2等语句。 字串5

1.5 结构化文本(ST)程序中的迭代语句 字串8

迭代语句适用于需要一条或多条语句重复执行许多次的情况,迭代语句的执行取决于某一变量或条件的状态。应用迭代语句应避免迭代死循环的情况。 字串8

FOR…DO 字串8

该迭代格式语句允许程序依据某一整型变量迭代。该迭代格式语句格式如下: 字串2

FOR 字串4

TO 字串8

BY DO 字串3


字串4


END_FOR

字串2


“initialize iteraion variable”是迭代开始的计数值,“final value bbbbbbbbbb” 迭代结束的计数值。迭代从“initialize iteraion variable”开始,每迭代一次,计数值增加“increment bbbbbbbbbb”,计数值增加到“final value bbbbbbbbbb”,迭代结束。 字串8

结构化文本(ST)程序中还有其它的迭代语句,如WHILE … DO,REPEAT … UNTIL等,迭代原理与FOR…DO 格式基本相同。此外,结构化文本(ST)的迭代语句中还有EXIT,RETURN两种格式,分别用于程序的返回和退出。

字串7


1.6 编程举例:用结构化文本(ST)程序编功能块 字串2

本程序是一用结构化文本(ST)程序编功能块的例子。该实例描述的是如何用功能块控制箱体中的流体,箱体可以通过阀门被注满和倒空,如图所示,箱体的重量由一个称重单元监视。功能块通过比较两个输入值FullWeight和EmptyWeight以确定箱体是满的还是空的。 字串7

  字串2


图一 水箱控制及功能块示意图
 

该功能块提供了一个“Command”输入,该输入有四种状态,1.给箱体加水;2. 保持不变;3.起动“Stirrer”;4. 清空箱体。实现该功能块算法的结构化文本(ST)程序如下: 字串2

(*箱体状态*) 字串6

TYPE_T_STATE: (FULL,NOT_FULL,EMPTIED);END_TYPE; 字串8

(*阀门状态*) 字串7

TYPE_T_VALVE: (OPEN,SHUT);END_TYPE; 字串5

FUNCTION_BLOCK TankControl

字串6


VAR_IN (**) 字串5

Command:SINT; 字串6

Weight :REAL;

字串8


FullWeight,EmptyWeight : REAL; 字串2

END_VAR

字串9


VAR_OUT (**)

字串7


FillValve :T_VALVE:=SHUT;

字串9


EmptyValve :T_VALVE:=SHUT;

字串6


StirSpeed :REAL:=0.0; 字串7

END_VAR 字串6

VAR 字串7

State :=T_STATE :=EMPTYIED;

字串2


END_VAR

二、指令表(IL-Instruction List)

IEC61131-3的指令表(IL-Instruction List)语言是一种低级语言,与汇编语言很相似,是在借鉴、吸收世界范围的PLC厂商的指令表语言的基础上形成的一种标准语言,可以用来描述功能,功能块和程序的行为,还可以在顺序功能流程图中描动作和转变的行为。 字串9

指令表语言能用于调用,如有条件和无条件地调用功能块和功能,还能执行赋值以及在区段内执行有条件或无条件的转移。指令表语言不但简单易学,而且非常容易实现,可不通过编译和连编就可以下载到PLC。IEC61131-3的其它语言如功能块图、结构化文本等都可以转换为指令表语言。 字串8

2.1指令表语言结构 字串9

指令表语言是由一系列指令组成的语言。每条指令在新一行开始,指令由操作符和紧随其后的操作数组成,操作数是指在IEC61131-3的“公共元素”中定义的变量和常量。有些操作符可带若干个操作数,这时各个操作数用逗号隔开。指令前可加标号,后面跟冒号,在操作数之后可加注释。 字串4

IL是所谓面向累加器(Accu)的语言,即每条指令使用或改变当前Accu内容。IEC61131-3将这一Accu标记为“结果”。通常,指令总是以操作数LD(“装入Accu命令”)开始。指令表程序如下所示:

字串8


2.2 指令表操作符 字串1

IEC 61131-3指令表包括四类操作符:一般操作符、比较操作符、跳转操作符和调用操作符。 字串8

2.2.1一般操作符符 字串2

指令表一般操作符是指在程序中经常会用到的操作符.

字串3


l 装入指令:LD N等。

字串3


l 逻辑指令:AND N( (与指令)、OR N( (或指令)、XOR N( (异或指令)等。 字串3

l 算术指令:ADD ((加指令)、SUB((减指令)、MUL ( (乘指令),DIV((除指令)、MOD ( (取模指令)等。 字串6

2.2.2 比较指令:GT ( (大于)、GE ( (大于等于)、EQ( (等于)、 NE( (不等于)、 LE( (小于等于)、 LT( (小于)等。

字串7


2.2.3 跳转及调用操作符

字串7


JMP C,N (跳转操作符)、 CALL C,N (调用操作符)等。

字串9


2.3 在指令表中调用功能及功能块

字串5


在IEC61131-3指令表的程序中,可以直接调用功能块和功能。指令表的功能块调用有 字串2

种格式,功能调用有两种格式。详细的调用可见IEC 61131-3标准。

字串4


2.4 用指令表定义功能及功能块 字串2

指令表可用于定义功能块和功能。当用指令表定义功能时,功能的返回值是结果寄存

字串1


内的新值;当用指令表定义功能块时,指令表引用功能块的输入参数(VAR_bbbbb),并且把值写到输出参数(VAR_OUPUT)。 字串8

2.5指令表与其它语言的移植性

字串2


指令表语言转换为其它语言是非常困难的,除非指令表操作符的使用范围及书写格式受到严格的限制,才有可能实现转换。IEC61131-3的其它语言较容易转换为指令表。

字串9


2.6IL的编程实例 字串7

本例是一个用指令表程序定义功能的实例,功能描述的计算平面上两点的移动距离。两点X,Y的坐标如下图所示。

字串2


  字串1


字串1



图二 用指令表编功能实例
 

用结构化文本描述的两点间距离的计算公式为:Travel_distance:=SQRT((X1-X2)*(X1-X2)+(Y1-Y2)*(YI-Y2)))。TMax是X,Y两点见的大距离,当计算值小于TMax时,说明计算正确;当计算值大于TMax时,说明X,Y两点间的距离超出了大距离,在这种情况下,功能是没有输出的。 字串3

用指令表编写的该功能的函数TRAVEL()如下:

字串9


FUNCTION TRAVEL : REAL

字串3


VAR_bbbbb 字串8

X1,X2,Y1,Y2 : REAL (*点X,Y坐标*)

字串1


TMax : REAL (*大移动距离*)

字串5


END_VAR 字串5

VAR

字串7


Temp : REAL; (*中间值*)

字串4


END_VAR

字串1


LD Y1 字串4

SUB Y2 (*计算Y2-Y1*) 字串1

ST Temp (*将Y2-Y1值存入Temp *)

字串4


MUL Temp (*计算(Y2-Y1)的平方*)

字串2


ADD( X1 字串7

SUB X2 (*计算(X1-X2)*)

字串3


ST Temp (*将(X1-X2)值存入Temp *)

字串5


MUL Temp (*计算(X1-X2)的平方*) 字串9

) (*将两平方值相加*) 字串9

CAL SQRT (*调平方根函数*)

字串5


ST TRAVEL (*设定计算结果*)

字串4


GT TMax (*比TMax 大吗?*)

字串1


JMPC ERR (*是,转到ERR 执行*)

字串8


S ENO (*设定ENO *) 字串3

ERR: 字串3

RET (*错误返回,ENO 不输出*)


联系方式

  • 地址:上海松江 上海市松江区石湖荡镇塔汇路755弄29号1幢一层A区213室
  • 邮编:201600
  • 联系电话:未提供
  • 经理:聂航
  • 手机:15221406036
  • 微信:15221406036
  • QQ:3064686604
  • Email:3064686604@qq.com