• 沒有找到結果。

长沙工控帮教育科技有限公司整理

FM 352,13 个数字量输 出

FM 452,16 个数字量输 出

闭环控制模块 FM 355,4 通道 FM 455,16 通道

2.6 ET 200 分布式 I/O

基于PROFIBUS-DP 现场总线的分布式I/O。I/O传送信号到CPU 只需ms 级。

只需要很小的空间,能在非常严酷的环境(例如酷热、严寒、强 压、潮湿或多粉尘)中使用。

1)电机启动器:异步电机的单向或可逆启动,7.5kW,最大电 流40A,一个站可以带6 个电机启动器。

(2)气动系统:ET 200X用于阀门控制。

(3)变频器

4)智能传感器:光电式编码器或光电开关等与使用ET 200S进 行通信。

(5)安全技术:在冗余设计的容错控制系统或安全自动化系统中 使用。包括紧急断开开关,安全门的监控以及众多与安全有关的电路。

长沙工控帮教育科技有限公司整理

有ET 200S故障防止模块、故障防止 CPU和PROFISafe协议。

2.6.2 ET 200的分类

(1) ET 200S 是分布式I/O系统。

(2) ET 200M是模块化的分布式I/O,采用S7-300全系列模块,

最多8 个模块。

ET 200M 户外型温度范围-25°C+60°C

(3) ET 200is 是本质安全系统,适用于有爆炸危险的区域。

(4) ET 200X:IP65/67的分布式I/O,相当于 CPU 314,可用于有 粉末和水流喷溅的场合。

(5) ET 200eco 是经济实用的I/O,IP67。

(6) ET 200R 适用于机器人,能抗焊接火花的飞溅。

(7) ET 200L是小巧经济的分布式 I/O,像明信片大小的I/O模块。

(8) ET 200B:整体式的一体化分布式I/O。

长沙工控帮教育科技有限公司整理

3 S7-300/400的编程语言与指令系统 3.1 S7-300/400 的编程语言

3.1.1 PLC编程语言的国际标准

IEC 61131是PLC的国际标准,19921995年发布了IEC 61131 标 准 中 的 14 部 分 , 我 国 在 199511 月 发 布 了 GB/T 15969-1/2/3/4(等同于IEC 61131-1/2/3/4)。

IEC 61131-3广泛地应用 PLC、DCS 和工控机、 “软件 PLC”、 数控系统、RTU等产品。

定义了5 种编程语言

1) 指令表IL(Instruction list):西门子称为语句表STL

2) 结构文本 ST(Structured text):西门子称为结构化控制语言

(SCL)。

3) 梯形图LD(Ladder diagram):西门子简称为LAD。

4) 功能块图FBD (Function block diagram):标准中称为功能方框 图语言。

5) 顺序功能图SFC(Sequential function chart):对应于西门子的 S7 Graph。

图3-1 PLC的编程语言 顺序功能图

梯形图 功能块图 指令表 结构文本

3.1.2 STEP 7中的编程语言

梯形图、语句表和功能块图是3 种基本编程语言,可以相互转换。

长沙工控帮教育科技有限公司整理

1.顺序功能图(SFC) :STEP 7中的S7 Graph 2.梯形图(LAD)

直观易懂,适合于数字量逻辑控制。“能流”(Power flow)与程序 执行的方向。

3. 语句表(STL):功能比梯形图或功能块图强。

4.功能块图(FBD):“LOGO!”系列微型PLC使用功能块图编程。

5.结构文本(ST):STEP 7的S7 SCL(结构化控制语言)符合EN 61131-3标准。

SCL 适合于复杂的公式计算、复杂的计算任务和最优化算法,或 管理大量的数据等。

长沙工控帮教育科技有限公司整理

6.S7 HiGraph 编程语言

图形编程语言 S7 HiGraph 属于可选软件包,它用状态图(state graphs)来描述异步、非顺序过程的编程语言。

7.S7 CFC 编程语言

可选软件包CFC(Continuous Function Chart,连续功能图)用图 形方式连接程序库中以块的形式提供的各种功能。

8.编程语言的相互转换与选用

STEP 7编程软件中,如果程序块没有错误,并且被正确地划分 为网络,在梯形图、功能块图和语句表之间可以转换。如果部分网络 不能转换,则用语句表表示。

语句表可供喜欢用汇编语言编程的用户使用。语句表的输入快,

可以在每条语句后面加上注释。设计高级应用程序时建议使用语 句表。

梯形图适合于熟悉继电器电路的人员使用。设计复杂的触点电路 时最好用梯形图。

功能块图适合于熟悉数字电路的人使用。

S7 SCL 编程语言适合于熟悉高级编程语言(例如PASCALC 语言)的人使用。

S7 Graph,HiGraph和 CFC可供有技术背景,但是没有PLC 编程 经验的用户使用。S7 Graph对顺序控制过程的编程非常方便,HiGraph 适合于异步非顺序过程的编程,CFC适合于连续过程控制的编程。

3.2 S7-300/400 CPU 的存储区 3.2.1 数制

1.二进制数

长沙工控帮教育科技有限公司整理

二进制数的1 位(bit)只能取0 和 1 这两个不同的值,用来表示 开关量的两种不同的状态。该位的值与线圈、触点的关系。ON/OFF, TURE/FALSE。二进制常数:2#1111_0110_1001_0001。

2.十六进制数

十六进制的16个数字是0~9 和A~F, 每个占二进制数的4 位。

B#16#,W#16#,DW#16#, W#16#13AF(13AFH)。逢16 进1,例 如B#16#3C=3×16+12=60。

3.BCD

BCD码用4 位二进制数表示一位十进制数,十进制数9 对应的二 进制数为1001。

最高4 位用来表示符号,16/32位 BCD码的范围。BCD码实际上 是十六进制数,但是各位之间逢十进一。296 对应的 BCD 码为 W#16#296,或2#0000 0010 1001 0110。

2#0000 0001 0010 1000 对应的十进制数也是296,对应的十进制 数为

296 8 32 56 2 2 2

28 5 3 + + =

长沙工控帮教育科技有限公司整理

3.2.2 基本数据类型 IB1IB2 IB3IB4 IB5 4.双字(Double Word)表示无符号数。范围 DW#16#0000_0000~ DW#16#FFFF_FFFF。

5.16位整数(INT,Integer)是有符号数,补码。最高位为符号

MB100 MB100 MB101

MB100 MB101 MB102 MB103

LSB

7.32位浮点数

S5T#是16 位S5时间常数,格式为S5T#aD_bH_cM_dS_eMS。 S5T#4S30MS = 4s30ms,取值范围为S5T#0~S5T#2H_46M_30S_0MS

9990s),时间增量为10ms

C#为计数器常数(BCD 码),例如 C#250。8 位 ASCII 字符用单 引号表示,例如 ‘ABC’。

T# 为 带 符 号 的 32 位 IEC 时 间 常 数 , 例 如

长沙工控帮教育科技有限公司整理

T#1D_12H_30M_0S_250MS,时间增量为1ms。

DATE是IEC日期常数,例如D#2004-1-15。取值范围为 D#1990-1-1~D#2168-12-31。

TOD#是32位实时时间(Time of day)常数,时间增量为1ms, 例如TOD#23:50:45.300。

B(b1,b2) B(b1,b2, b3,b4)用来表示2个字节或 4个字 节常数。

3.2.3 复合数据类型与参数类型 1.复合数据类型

通过组合基本数据类型和复合数据类型可以生成下面的数据类 型:

(1) 数组(ARRAY)将一组同一类型的数据组合在一起,形成一 个单元。

(2) 结构(STRUCT)将一组不同类型的数据组合在一起,形成一 个单元。

(3) 字符串(STRING)是最多有 254 个字符(CHAR)的一维数 组。

(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和逻辑块的变量声明表中定义复合数据类型。

2.参数类型

为在逻辑块之间传递参数的形参(formal parameter,形式参数)

定义的数据类型:

(1) TIMER(定时器)和COUNTER(计数器):对应的实参(actual parameter,实际参数)应为定时器或计数器的编号,例如T3,C21。 (2) BLOCK(块):指定一个块用作输入和输出,实参应为同类型 的块。

(3) POINTER(指针):指针用地址作为实参。例如 P#M50.0。 (3) ANY:用于实参的数据类型未知或实参可以使用任意数据类型

的情况,占10个字节。

3.2.5 系统存储器

1.过程映像输入/输出(I/Q)

在扫描循环开始时,CPU读取数字量输入模块的输入信号的状态,

并将它们存入过程映像输入(process image input,PII)中。

在扫描循环中,用户程序计算输出值,并将它们存入过程映像输 出表(process image output,PIQ)。在循环扫描结束时将过程映像输 出表的内容写入数字量输出模块。

I和Q 均以按位、字节、字和双字来存取,例如I0.0, IB0, IW0和 ID0。

与直接访问I/O模块相比的优缺点。

长沙工控帮教育科技有限公司整理

2.内部存储器标志位(M)存储器区 3.定时器(T)存储器区

时间值可以用二进制或 BCD码方式读取。

4.计数器(C)存储器区

计数值(0~999)可以用二进制或BCD 码方式读取。

5.共享数据块(DB)与背景数据块(DI)

DB为共享数据块,DBX2.3,DBB5,DBW10 和DBD12。 DI为背景数据块,DIX, DIBDIWDID

6.外设 I/O 区(PI/PO)

外设输入(PI)和外设输出(PQ)区允许直接访问本地的和分布 式的输入模块和输出模块。可以按字节(PIB或 PQB)、字(PIW或 PQW)或双字(PID或PQD)存取,不能以位为单位存取 PI和PO。

长沙工控帮教育科技有限公司整理

3.2.6 CPU中的寄存器 1.累加器(ACCUx)

累加器用于处理字节、字或双字的寄存器。S7-300有两个32位累

OUT MW4 MW2

OUT MB8 IB2

位逻辑指令用于二进制数的逻辑运算。位逻辑运算的结果简称为 RLO。

3.3.1 触点指令

1. 触点与线圈

A(And,与)指令来表示串联的常开触点。

O (Or,或)指令来表示并联的常开触点。

AN (And Not,与非)来表示串联的常闭触点,

ON (Or Not)来表示并联的常闭触点。

输出指令“=”将RLO写入地址位,与线圈相对应。L20.0是局域 变量。将梯形图转换为语句表时,局域变量L20.0是自动分配的。

A(

A I 0.0 AN I 0.1 O I 0.2 )

A I 0.3 ON C 5 = L 20.0 A L 20.0 = Q 4.3 A L 20.0 = Q 4.4 A L 20.0 AN I 3.4

= Q 4.6

图3-10 触点与输出指令 I0.0 I0.1

I0.2

I0.3 Q4.3

C5 I3.4 Q4.6 Q4.4

2. 取反触点

长沙工控帮教育科技有限公司整理

图3-11 取反触点 I0.6 I0.3 Q4.5

NOT

3.电路块的串联和并联

图3-12 电路块的并联 I0.0 M0.3

I0.2

I0.5I0.2 AA

I0.0M0.3 AAN O

图3-13 电路块的串联 I0.0 M0.0

I0.2

I0.0M3.3 A(O

I0.0 I0.1 M0.1 I0.3 Q4.3

图3-14 中线输出指令

# I0.0 I0.1 I0.3 Q4.3

I0.4 Q4.2 M0.1 I0.4 Q4.2

(a) (b)

图3-15 异或 I0.0 I0.2

I0.2 Q4.3 I0.0

图3-16 同或 I0.0 I0.2

I0.2 Q4.4 I0.0

I0.0 I0.0

I0.2 I0.2

X Q4.3 I0.3

I0.1

图3-18 RS触发器与SR触发器 R RS

S I0.4 Q I0.6

M0.0 Q4.1

S SR R I0.2 Q I0.5

M0.1 Q4.3

图3-19 上升沿与下降沿检测

Q4.3 Q4.3 Q4.5 I0.1 I0.2 Q4.3

M0.0

I0.3 NEGI0.4 Q4.5 M0.1

故障信号 复位信号 锁存信号 显示输出

图3-21 故障信息显示 POS

M_BIT Q

Q4.0 I0.0 M0.0

M0.1 M0.1

I0.1 M0.1

M1.5 M0.1 I0.0

I0.0 I0.1 M0.1 Q4.0

设置 CPU的属性时,在“Cycle/Clock Memory”标签页令 M1为 时钟存储器字节,其中的M1.5提供周期为1s的时钟脉冲。

SET 与CLRClear)指令将 RLO(逻辑运算结果)置位或复位,

紧接在它们后面的赋值语句中的地址将变为1 状态或0 状态。

SET //将RLO置位

= M0.2 //M0.2 的线圈“通电”

CLR //将RLO复位

= Q4.7 //Q4.7 的线圈“断电”

长沙工控帮教育科技有限公司整理

3.4.1 定时器指令

(2) S5T#aH_bM_cS_Dms,例如 S5T#18S

时基代码为二进制数00,01,10和11时,对应的时基分别为10ms, 100ms,1s和10s。

6.脉冲定时器

长沙工控帮教育科技有限公司整理

图3-26 脉冲定时器时序图

S_PULSEQ BI

T MW12 //将累加器1的内容传送到 MW12

S_PEXTQ BI

S TV R

S_ODTQ BI

S_ODTSQ BI

S TV R S_OFFDTQ

BI

C10 Q5.0

S

C11 Q5.1

S

A I0.3 //如果I0.3 为1

设置计数值线圈 SC(Set Counter Value)用来设置计数值,在RLO 的上升沿预置值被送入指定的计数器。CU 的线圈为加计数器线圈。

I0.0 T12 T11 SD

S_CUDQ

CV CV_BCD I0.0

I0.3 MW20

C12 Q5.2

S I0.2 I0.1

CU

长沙工控帮教育科技有限公司整理

3.5.1 装入指令与传送指令 1.装入指令与传送指令

装入(LLoad)指令将源操作数装入累加器1,而累加器1 原有 的数据移入累加器2

装入指令可以对字节(8 位)、字(16位)、双字(32位)数据迸 行操作。

传送(T,Transfer)指令将累加器1 中的内容写入目的存储区中,

累加器1 的内容不变。

2.立即寻址的装入与传送指令

立即寻址的操作数直接在指令中,下面是使用立即寻址的例子。

L −35 //将 16 位十进制常数−35 装入累加 器 1的低字ACCU1-L

L L#5 //将32位常数 5装入累加器 1 L B#16#5A //将 8 位十六进制常数装入累加器 1 最低字节 ACCU1-LL

L W#16#3E4F //将 16 位十六进制常数装入累加器 1 的低字 ACCU1-L

L DW#16#567A3DC8 //将32位十六进制常数装入累加器 1 L 2#0001_1001_1110_0010 //将16位二进制常数装入累加器1 的低字 ACCU1-L

L 25.38 //将32位浮点数常数(25.38)装入累加器1 L ‘ABCD’ //将4 个字符装入累加器1

长沙工控帮教育科技有限公司整理

L TOD#12:30:3.0 //将32位实时时间常数装入累加器 1 L D#2004-2-3 //将 16 位日期常数装入累加器 1 的低 字 ACCU1-L

L C#50 //将16位计数器常数装入累加器1的低字 ACCU1-L

L T#1M20S //将16位定时器常数装入累加器1的低字 ACCU1-L

L S5T#2S //将 16 位定时器常数装入累加器 1 的 低字ACCU1-L

L P#M5.6 //将指向M5.6的指针装入累加器 1 AW W#16#3A12 //常数与累加器1的低字相“与”,运算结 果在累加器1 的低字中

L B#(100,12,50,8) //装入4 字节无符号常数 3.直接寻址的装入与传送指令

直接寻址在指令中直接给出存储器或寄存器的区域、长度和位置,

例如用 MW200 指定位存储区中的字,地址为 200;下面是直接寻址 的程序实例:

例如用 MW200 指定位存储区中的字,地址为 200;下面是直接寻址 的程序实例:

相關文件