Download presentation
Presentation is loading. Please wait.
Published byGustavo de Sousa Terra Modified 6年之前
1
四、SIMATIC S7-300 PLC及指令系统 4.1 系统组成 4.2 系统配置 4.3 指令系统简介 4.4 程序结构
4.1 系统组成 4.2 系统配置 4.3 指令系统简介 4.4 程序结构 4.5 S7 PLC的网络通信
2
4.1 S7-300 PLC的系统组成 S7-300 PLC的硬件构成 : CPU模块 接口模块(IM) I/O模块(SM)
功能模块(FM) 电源模块(PS) 导轨(RACK)等 总线连接器 电源模块 CPU模块 通信模块 I/O模块 DIN导轨 模块
3
4.1.1 CPU单元 SIMATIC S7-300有多种性能级别的CPU: 1. 各种CPU均封装在一个紧凑的塑料壳体内
2. CPU上集成有MPI多点接口, MPI接口可以使PLC与其它PLC、OS、 PG、OP等建立通信联系,可建立由多个站点组成的简单网络。 3. CPU31x –2集成Profibus-DP接口,适用于大范围分布式自动化结构。 4. 通过模块扩展,可以实现EtherNet通信 5. 执行速率、存储器容量、可扩展I/O点数等都随着CPU序号的递增而 增加。
4
CPU单元—1 CPU CPU312IFM CPU313 CPU314 CPU315-2DP 工作存储器 6KB 12KB 24KB
内部装载存储器 20KB RAM 20KBEEPROM 40KB RAM 96KB RAM 扩展装载存储器 —— 4M FEPROM DI (最大) 256+10(集成) 256 1024 1024(8192) DO (最大) 256+6(集成) AI (最大) 64 256(512) AO (最大) 32 128 128(512) 最大机架数(模块数) 1(8) 4(32) CPU集成DP接口 1 CPU集成MPI接口 √
5
4.1.2 模拟量输入模块(SM331) 模拟量值的表示方法 SM331的输入测量范围很宽,可直接输入电压、电流、电阻、mV等信号
单极性电压、电流输入的数字化表示: 双极性是什么意思? 量 程 1~5V 4~20mA 150Ω 十进制结果 范围 5 …… 1 20 4 150 27648 标称范围
6
AI模块 转换程序 变送器:把(0-200kPa)转换为(4-20mA) 模 块:把(4-20mA)转换为(0,27648)
数字量 0~27648 -27648~27648 4~20mA 1~5VDC 0~10mA 0~20mA …… AI模块 转换程序 工程量,如: 0~200kPa …… L PIW 400 //从端口地址(例如:400)读入十进制转换结果 T # Dec_in //存入临时变量Dec_in,#表示临时变量 CALL "SCALE" //直接调用系统提供的转换函数,以下是输入输出参数 IN : =# Dec_in //入口参数:十进制转换结果 HI_LIM : = e+002 //入口参数:工程量上限200,kPa(PLC本身没有单位概念) LO_LIM : = e+000 //入口参数:工程量下限0 BIPOLAR : =FALSE //入口参数:TRUE为双极性,FALSE为单极性 RET_VAL : =#ret //出口参数:返回值(准确--0,错误--其它值) OUT : =#In_result //出口参数:工程量转换结果 变送器:把(0-200kPa)转换为(4-20mA) 模 块:把(4-20mA)转换为(0,27648) 程 序:把(0,27648)转换为(0-200kPa)的值( In_result ),共程序调用
7
SM331模块的硬件设置 2种规格型号:8通道、2通道 ※ 模拟量模块装有量程块,调整量程块的方位可改变模块内部的硬件结构
ch 0、 ch 2、3 量程块上的标记 模块上的标记 ※ 模拟量模块装有量程块,调整量程块的方位可改变模块内部的硬件结构 ※ 每两个相邻输入通道共用一个量程块,构成一个通道组。 ※ 量程块是一个正方体的短接块,在上方有“A”,“B”,“C”,“D”四个标记 ※ 不同的量程块位置,适用于不同的测量方法和测量范围。
8
SM331量程块设置对应关系 : 设置标记 对应的测量方式及范围 缺省设置 A 电 压:1000mV
电 阻:150Ω、300Ω、600Ω、Pt100、Ni100 热电偶:N、E、J、K等各型热电偶 电压: 1000mV B 电 压:10V 电压: 10V C 电 流:20mA(4线制变送器输出) 电流:4~20mA(4线制) D 电 流:4~20mA(2线制变送器输出) 电流:4~20mA(2线制)
9
SM331模块的软件设置 通道组诊断 断线检查 信号类型 信号范围 积分时间设置 上下限设置 诊断中断允许 限幅中断允许 通道组
10
SM331模块的信号连接 输入信号类型: 电压信号 电流信号 二线制电流 四线制电流 毫伏信号 电阻信号
11
电压信号连接 模块配置成电压输入(B) L+ M M- M+ 光隔 MANA ADC 总线 U + - U + -
12
两线制仪表与四线制仪表? 四线制仪表 四线制输入 电流信号连接 模块配置成四线制电流输入(C),只接收4~20mA电流 I ADC I
L+ M M- M+ 光隔 MANA ADC 总线 I 4~20mA 24VDC/220VAC I 4~20mA 24VDC/220VAC 四线制仪表 四线制输入
13
二线制仪表 四线制输入 电流信号连接 模块配置成四线制电流输入(C),只接收4~20mA电流 I ADC 24V电源 MANA L+ M -
光隔 MANA ADC 总线 I 4~20mA + - 二线制仪表 四线制输入
14
二线制仪表 二线制输入 内部原理示意 电流信号连接 模块配置成二线制电流输入(D),带配电接收4~20mA电流 I ADC I ADC
L+ M M- M+ 光隔 MANA ADC 总线 MANA ADC 24V I 4~20mA + - I 4~20mA + - 二线制仪表 二线制输入 内部原理示意
15
毫伏信号连接 一般什么仪表输出mV信号? 该仪表在使用时需要注意什么? ADC ADC 补偿盒 外部补偿 内部补偿 COMP +
L+ M M- M+ COMP + COMP - ADC L+ M M- M+ COMP + COMP - ADC 参考点 补偿盒 补偿导线 外部补偿 内部补偿
16
P 电阻信号连接 一般什么仪表输出Ω信号? 该仪表在使用时需要注意什么? ADC ADC ADC 四线制连接方式 三线制连接方式
L+ M M- M+ Ic+ Ic- MANA ADC L+ M M- M+ Ic+ Ic- MANA ADC + - L+ M M- M+ Ic+ Ic- MANA ADC + - + - P 四线制连接方式 三线制连接方式 二线制连接方式
17
4.1.3 模拟量输出模块(SM332) 模拟量值的表示方法 SM332模块可以输出电压和电流两种类型的信号 单极性输出 双极性输出
输出信号标称范围 十进制 结果 0~20mA 4~20mA 0~10V 1~5V ±10V ±20mA 20.000 …… 4.000 10.000 5.0000 1.0000 27648 -27648 SM332模块可以输出电压和电流两种类型的信号
18
AO模块 单:0~27648 双:-27648~27648 转换程序 阀位 程 序:把(0-100%)转换为(0-27648)
4~20mA 0~10VDC 0~20mA …… 单:0~27648 双:-27648~27648 转换程序 阀位 如:0~100% CALL "UNSCALE" //直接调用系统提供的转换函数,以下是输入输出参数 IN :=#Out //入口参数:阀位值0~100%浮点数 HI_LIM := e+002 //入口参数:阀位上限100 LO_LIM := e+000 //入口参数:阀位下限0 BIPOLAR :=FALSE //入口参数:TRUE为双极性输出,FALSE单极性输出 RET_VAL :=#Err //出口参数:返回值 OUT :=#Out_result //出口参数:十进制转换结果存入临时变量 L #Out_result T PQW //十进制转换结果输出到过程输出缓冲区,如416 程 序:把(0-100%)转换为(0-27648) 模 块:把(0-27648 )转换为(4-20mA) 执行器:把(4-20mA)转换为相应的阀位
19
SM332模块的软件设置(不需要硬件设置) SM332有2×12、4×12、8×12位等AO模块,其特性、参数、工作原理完全相同。
诊断中断允许 通道诊断 信号类型I、V 信号范围 0~20mA 4~20mA CPU停止时输出保持 CPU停止时输出为0 电压输出范围
20
RL RL SM332模块的信号连接 输出信号类型: 电压信号 电流信号 每通道有4个端子 电压输出 DAC DAC
QV S- MANA DAC L+ M S+ QV S- MANA DAC RL RL 电压输出(4线) 电压输出(2线)
21
电流输出 L+ M S+ QI S- MANA DAC Io RL
22
4.1.4 开关量输入模块 (SM321) 开关量输入模块SM321主要有直流信号输入和交流信号输入二大类 SM321开关量输入模块
16×24VDC 32×24VDC 16×120VAC 8×120/230VAC 输入点数 16 32 8 输入电压 “1” 15~30VDC 79~132VAC 79~264VAC “0” -3~5VDC 0~20VAC 0~40VAC 与背板总线的隔离 光耦 “1”信号典型输入电流 7mA 7.5mA 6mA 6.5mA/11mA 典型输入延迟时间 1.2~4.8ms 25ms 诊断中断 某些型号具备 —— 绝缘耐压测试 500VDC 1500VAC
23
4.1.5 开关量输出模块(SM322) SM322模块有晶体管、可控硅和继电器3种输出类型 SM322开关量输出模块 晶体管输出
可控硅输出 继电器输出 输出点数 8 16 32 额定电压 24VDC 120/230VAC 120VAC 230VAC/24VDC “1”信号最大输出电流 2A 0.5A 1A —— “0”信号最大输出电流 0.5mA 2mA 1mA 与背板总线的隔离 光耦 触点容量 阻性负载 100Hz 10Hz 2Hz 触点开 关频率 感性负载 0.5Hz 灯负载 1Hz 诊断 LED指示 绝缘耐压测试 500VDC 1500VAC
24
根据自动化系统的实际规模和要求,配置PLC硬件系统。
4.2 系统配置 根据自动化系统的实际规模和要求,配置PLC硬件系统。 ※S7系列PLC采用的是模块化的结构形式,根据系统规模用户可选择不同型号和不同数量的模块,并把这些模块安装在一个或多个机架上。 ※除了CPU模块、电源模块、通信接口模块之外,它规定每一个机架最多可以安装8个I/O信号模块。 ※一个PLC系统的最大配置能力(包括I/O点数、机架数等)与CPU的型号相关
25
常用的模块: CPU:312、313、314、315-2DP、316-2…… 电源:PS-307(2A、5A、10A)、SITOP(5A、10A、20A、40A) 接口模块(连接机架):IM365(CR,最多1)/IM365(ER,最多1) IM360(CR,最多1)/IM361(ER,最多3) IM153(ER,最多127,DP总线) AI:SM331(I、V、mV、Ω;2通道、8通道) SM331 RTD( Ω ;2通道、8通道) AO:SM332(I、V;2通道、4通道,8通道) DI:SM321(8/16/32通道) DO:SM322 (8/16/32通道)
26
要求配置S7 PLC的I/O模块并选择合适的CPU单元 冗余10个通道
示例: 输入:46路4~20mA信号 输入:4路PT100信号 输出:32路4~20mA信号 某系统需要 要求配置S7 PLC的I/O模块并选择合适的CPU单元 冗余10个通道 冗余4个RTD通道 (1) IO模块配置一 每路4~20mA占1个A/D通道 → 需46个A/D通道 需7块8通道SM331 电阻信号可以配置RTD模块 → 需4个RTD通道 需1块8通道SM331 RTD 每路4~20mA占1个D/A通道 → 需32个D/A通道 需4块8通道SM332 过多的冗余是浪费,但适当的冗余还是必要的 总计12块SM模块,需要2个机架
27
示例: 冗余2个A/D通道 (2) IO模块配置二 需7块8通道SM331 需4块8通道SM332 总计11块SM模块,需要2个机架
每路4~20mA占1个A/D通道 → 需46个A/D通道 需7块8通道SM331 每路电阻信号占2个A/D通道 → 需8个A/D通道 每路4~20mA占1个D/A通道 → 需32个D/A通道 需4块8通道SM332 总计11块SM模块,需要2个机架 (3) CPU配置 该系统需要12个SM模块,必须安装到2的机架,如果单纯从I/O配置的角度分析(暂不考虑内存、速度需求),根据表7.1中的性能参数,该系统可以选用CPU314或CPU314以上的型号均可。
28
示例: (3) 接口模块 (4) 电源模块 有三种选择: 第一种:IM365/IM365,最经济
(3) 接口模块 有三种选择: 第一种:IM365/IM365,最经济 第二种:IM360/IM361,有一定扩展 能力,可以扩到4个机架 第三章:IM153,CPU上需要有DP口(或者通过模块扩展DP口),有很大的扩展能力,可方便地和其他系统组网 (4) 电源模块 模块供电,外部仪表供电(确定合适的电源模块的功率) 尽管理论上可以集中供电,即两个机架用同一个电源,但实际系统建议每个机架分别配置电源模块 2块
29
示例: (5) 其它附设 导轨:安装各种模块(几个机架至少几块) 与上位机通信的接口卡:板卡式MPI网卡CP5611
(5) 其它附设 导轨:安装各种模块(几个机架至少几块) 与上位机通信的接口卡:板卡式MPI网卡CP5611 编程电缆(外置,USB或者串口连接) 内存卡:新CPU必须,有不同容量,如64KB、128KB、512KB、2MB、4MB 总线连接器:DP总线连接、上下位机采用网卡连接时需要,每点1个 通信电缆(屏蔽双绞线):DP总线连接、上下位机采用网卡连接时需要 下位机开发软件:STEP7 5.x(很贵的啊) 上位机组态软件:WINCC(和系统点数有关系,可以自主开发) ……
30
4.2.1 硬件结构配置 逻辑槽号 电源模块 CPU模块 通信模块 I/O模块
硬件结构配置 ※PLC模块的安装是有顺序要求的,每个机架从左到右分为11个逻辑槽号 ※电源模块安装在最左边的1#槽,2#槽安装CPU模块,3#槽安装通信接口模块,4~11#槽可自由分配I/O信号模块、功能模块或扩展通信模块。 ※需要注意的是,槽号是相对的,机架上并不存在物理上的槽位限制。 逻辑槽号 电源模块 CPU模块 通信模块 I/O模块
31
电源 1 CPU2 IO 4 IO 5 IO 6 IO 7 IO 8 IO 9 电源 1 接口2 IO 4 IO 5 IO 6 IO 7 IO 8 IO 9
32
机架的连接(1) 方式一: 如果:机架数量=2 and 机架之间的距离≤1米 接口模块: IM365 信号、功能模块 1 3 4 5 6 7
8 9 10 11 扩展机架(ER) 接口模块: IM365 信号、功能模块 1 3 4 5 6 7 8 9 10 11 2 中央机架(CR) CPU 槽位号
33
机架的连接(2) 方式二: 如果:机架数量≤4 and 机架之间的距离≤10米 接口模块: IM361 扩展机架(ER) 接口模块:
5 6 7 8 9 扩展机架(ER) 接口模块: IM361 1 3 4 5 6 7 8 9 扩展机架(ER) 接口模块: IM360 1 3 4 5 6 7 8 9 10 11 2 中央机架(CR)
34
机架的连接(3) 方式三: 如果:机架数量>4 or 机架之间的距离>10米
要求:CPU上集成DP口或在CR上扩展DP口(Profibus-DP) 1 3 4 5 6 7 8 9 扩展机架(ER) 连接到DP接口 Profibus-DP总线 1 3 4 5 6 7 8 9 扩展机架(ER) 1 2 4 5 6 7 8 9 1 3 4 5 6 7 8 9 扩展机架(ER) CR:安装在控制室 1 3 4 5 6 7 8 9 扩展机架(ER) IM153
35
总结 硬件配置部分 【一个机架】 【两个机架,间距≤ 10米/1米】 ≤8个SM/FM模块
[电源] [ CPU] [SM/FM][SM/FM]……[SM/FM] 【两个机架,间距≤ 10米/1米】 [电源] [ CPU] [IM360/365] [SM/FM][SM/FM]……[SM/FM] [电源] [IM361/365] [SM/FM][SM/FM]……[SM/FM]
36
【3~4个机架,间距≤ 10米】 ≤8个SM/FM模块
[电源] [ CPU] [IM360] [SM/FM][SM/FM]……[SM/FM] [电源] [IM361] [SM/FM][SM/FM]……[SM/FM]
37
【多个机架,间距“不限”】 Profibus DP总线 [电源] [ CPU] [SM/FM][SM/FM]……[SM/FM] [电源]
[IM153] [SM/FM][SM/FM]……[SM/FM] Profibus DP总线
38
硬件选型:CPU、IO、通信接口、电源……
PLC系统开发的基本流程 根据工艺要求,确定I/O参数数量 依据工艺流程图 硬件选型:CPU、IO、通信接口、电源…… 确定硬件结构 Offline 1. 进入Step 7 2-1.硬件配置 2-2.地址配置:网络地址 IO端口地址 3. 软件编程(针对工艺要求) 控制柜设计(机架分配、布置)和制作 PLC系统及端子的布置与接线(成套) 现场仪表的连接(现场实施的开始) 模拟测试 Online 联机调试、投运
39
4.2.2 IO地址配置 系统的I/O模块分为: 模拟量和数字量二种类型, 每个模块包含若干个通道。 模块上任何通道均配置独立的地址
应用程序则根据地址实现对它们的操作。 每个通道的地址占用一位(bit) 数字量模块最大为 32 通道 模块地址最多占 4 字节 §数字量I/O模块 每个模拟量地址为一个字地址(2byte) 模拟量模块最大为 8 通道 模拟地址最多占 16 字节 §模拟量I/O模块
40
I/O地址的生成 I/O地址的生成 在硬件配置时,系统提供缺省地址(推荐使用) 手动更改(部分CPU提供这种功能)
41
I/O地址的配置注意事项: 配置IO模块地址时,可以是系统提供缺省地址(初学者推荐使用),也可以是手工自主配置(部分CPU不支持该功能;
不同CPU的最大IO寻址能力是不同的,如CPU315-2DP可达2KB; 输入、输出的地址是不同的,即CPU315-2DP最大输入地址2KB,最大输出地址也是2KB,实际可寻址4KB 0-127字节留给开关量模块使用
42
例子: 某8通道SM331模块,配置地址为256-271 L PIW256--就是把十进制转换结果,读入到累加器。
第0~7通道的地址分别为:256、258、260、262、264、266、268、270 读取第0个通道的模拟量转换结果: L PIW256 读取第7个通道的模拟量转换结果: L PIW270 L PIW256--就是把十进制转换结果,读入到累加器。 如4~20mA输入信号的转换结果式 0-27648 用scale函数可以在PLC内部把0~27648还原到与变送器量程对于的工程量
43
例子: 某8通道SM332模块,配置地址为272-287 输出过程: 把一个输出送到第0个输出通道: T PQW272
(1)控制策略运算结果,一般为0~100%的阀位 (2)调用unscale函数把0~100转换为0~27648(十进制数) (3)T PQW272 / 274……
44
例子: 某32通道SM321模块,配置地址为0-3 某16通道SM322模块,配置地址为4-5 读入第0个通道的二进制值: A I 0.0
读入第22个通道的二进制值: …… A I 2.6 某16通道SM322模块,配置地址为4-5 输出一个二进制值到第0通道: = Q 4.0 输出一个二进制值到第7通道: = Q 4.7 输出一个二进制值到第12通道: …… = Q 5.4
45
4.2.3 内部寄存器 S7 CPU的寄存器有(7个): 2个32位累加器*** 2个32位地址寄存器** 2个32位数据块地址寄存器
累加器 位 累加器1 (A1) 主 累加器2 (A2) 辅 2个32位累加器*** 地址寄存器 位 地址寄存器1 (AR1) 地址寄存器2 (AR2) 2个32位地址寄存器** 数据块地址寄存器 32位 共享数据块 背景数据块 2个32位数据块地址寄存器 状态字寄存器 16位 状态位 1个16位状态字寄存器*
46
4.2.4 存储区 CPU能访问的存储区:P、Q、I、M、T、C、DB块、L堆栈 主要关心哪些存储区能够按“位”方位,哪些不能。 名 称
存储区 CPU能访问的存储区:P、Q、I、M、T、C、DB块、L堆栈 名 称 存储区 存 储 区 功 能 输入(I) 输出(Q) 过程输入映像表 过程输出映像表 每个扫描周期更新一次(对应开关量输入输出) 过程输入/输出映像表分别对应外设输入/输出存储区的前128字节映像 访问方式:位、字节、字、双字 外设输入(PI) 外设输出(PQ) 外设输入存储器 外设输出存储器 外设存储区与所有IO对应,允许直接访问现场设备 访问方式:字节、字、双字(不能访问位) 位存储区(M) 存放程序运行的标志或其他中间结果,其大小与CPU型号有关 数据块(DB) 数据块 数据类型、数据块大小自由定义,访问方式:位、字节、字、双字 分共享数据块、背景数据块 定时器(T) 定时器 定时器数量与CPU型号有关 计数器(C) 计数器 计数器数量与CPU型号有关 临时本地数据存储区(L) L堆栈 在FB、FC、OB块运行时,在块变量声明表中暂时变量存放在该存储区。(建议编程时不要直接使用该存储区) 主要关心哪些存储区能够按“位”方位,哪些不能。
47
① 外设输入输出存储区(PI、PQ) ② 输入输出映像区(I、Q) 外设I/O与存储区的映像 外设IO模块与存储区有二种映射关系:
不能逐位访问,其它都可以 输入输出映像表:包括输入过程映像表(I)和输出过程映像表(Q) ◎输入映像表为128Byte,是对PI首128Byte的映像, ◎输出映像表为128Byte,是对PQ的首128Byte的映像 这两段地址一般作为开关量输入、输出模块的IO地址 能够逐位方式访问,其它也可以
48
输入映像示例 开关量输入模块缺省地址 模拟量输入模块地址 物理模块 配置地址 PI I 用户程序 32路 DI 中央机架 槽4 0I
装载输入映像区 第0字节 IB 0 逐位装载 I0. 5 1I 1 2I 3I …… 2 8路AI 槽5 272I 127I 273I 274I 127 275I 装载外设输入存储区 PIW 272 第0 AI 通道 276I 277I 3 278I 279I 4 280I 281I PIW 280 第4 AI 通道 5 282I 283I 6 284I 285I 7 286I 287I 开关量输入模块缺省地址 模拟量输入模块地址
49
输出映像示例 物理模块 配置地址 外设输出存 储 区 输出映 像 区 用户程序 16路 DO ER1 槽4 32Q …… 逐位输出
像 区 用户程序 16路 DO ER1 槽4 32Q …… 逐位输出 Q32. 2 33Q 32 33 4路AO ER1 槽5 400Q 127Q 401Q 1 402Q 127 403Q 2 404Q 405Q 3 406Q 407Q 装载外设输出存储区 PQW 400 64K
50
4.3 指令系统简介 SIMATIC S7系列PLC用户程序的开发软件包:STEP 7
4.3 指令系统简介 SIMATIC S7系列PLC用户程序的开发软件包:STEP 7 S7系列PLC的编程语言:LAD(梯形图)、STL(语句表)*、 SCL(标准控制语言)、C for S7(C语言)等, 用户可以选择一种语言编程,也可混合使用几种语言编程。 常用的编程语言: LAD(梯形图)、STL(语句表)*
51
4.3.1 STL指令及其结构 定义要执行的功能 执行该操作所需要的信息 语句指令: 操作码 操作数
语句指令: 操作码 操作数 A I //对输入继电器 I 0.1 进行与操作 L MW //将字MW10装入累加器1 有些语句指令不带操作数,它们操作的对象是唯一的。 NOT //对逻辑操作结果(RLO)取反。
52
表示操作数存放区域及操作数位数(位、字节、字等)
操作数: 标识符 标识参数 A I L M W 表示操作数在该存储区域内的具体位置 主标识符:表示操作数所在的存储区 主要有:I(输入映像区),Q(输出映像区),M(位存储区),PI(外部输入),PQ(外部输出),T(定时器),C(计数器),DB(数据块),L(本地数据)等 辅助标识符进一步说明操作数的位数长度 包括有:X(位),B(字节), W(字——2字节), D(双字——4字节) 表示操作数存放区域及操作数位数(位、字节、字等)
53
7 6 5 4 3 2 1 位存储区的操作数表示方式 M 10.3 MB10 MW10 MB11 MB12 MD10 MB13 MB14
10.7 10.6 10.5 10.4 10.3 10.2 10.1 10.0 MB10 MW10 MB11 MB12 MD10 MB13 MB14 位存储区的操作数表示方式
54
存储区及其操作数表示方法 √ I IB IW ID Q QB QW QD M MB MW MD PIB PIW PID PQB PQW
存储区域 位 字节 字 双字 输入映像区(I) √ I IB IW ID 输出映像区(Q) Q QB QW QD 位存储区(M) M MB MW MD 外部输入存储区(PI) PIB PIW PID 外部输出存储区(PQ) PQB PQW PQD 数据块(用“OPN DB”打开) DBX DBB DBW DBD 数据块(用“OPN DI”打开) DIX DIB DIW DID 临时堆栈(L) L LB LW LD
55
4.3.2 寻址方式 操 作 数——指令的操作或运算对象 寻址方式——指令得到操作数的方式。 寻址方式┳━━立即寻址 ┣━━存储器直接寻址
寻址方式 操 作 数——指令的操作或运算对象 寻址方式——指令得到操作数的方式。 寻址方式┳━━立即寻址 ┣━━存储器直接寻址 ┣━━存储器间接寻址 ┗━━寄存器间接寻址
56
寻址方式一:立即寻址 立即寻址:对常数或常量的寻址方式,操作数本身包含在指令中
SET //把RLO (Result of Logic Operation)置“1” L //把整数27装入累加器1 L C# //把 BCD码常数0100装入累加器1
57
寻址方式二:直接寻址 直接寻址:在指令中直接给出操作数的存储单元地址 A I0 . 0 //对输入位I0.0进行“与”逻辑操作
S L //把本地数据位L20.0置1 = M // 将RLO的内容传给位存储区中的位M115.4 L DB1 . DBD12 //把数据块DB1双字DBD12中的内容传送给累加器1 //双字表示32位,如浮点数为32为双字
58
寻址方式三:存储器间接寻址 (用得不是很多)
存储器间接寻址 :标识参数由一个存储器给出,存储器的内容对应该标识参数的值(该值又称为地址指针) 该寻址方式能动态改变操作数存储器的地址,常用于程序循环 A I[MD 2] //对由MD 2指出的输入位进行“与”逻辑操作,如: MD 2值为 //2# 表示I 10. 6 L IB[DBD 4] //将由双字DBD 4指出的输入字节装入累加器1,如DBD 4值为 //2# 表示对IB10操作 OPN DB[MW 2] //打开由字MW2指出的数据块,如MW2为3,则打开DB3
59
地址的两种表述方式 字地址指针 双字地址指针 直接寻址 存 储 器 间接寻址 A I 1.2 L MB10 L MD 12
—— 标识参数:1.2 —— 标识参数:10 —— 标识参数:12 存 储 器 间接寻址 A I [ DB1.DBD0 ] L MB [ MD16 ] L MD [ MW20 ] —— DB1.DBD0=P#1.2 —— MD16=P#10.0 —— MW20=12 地址的两种表述方式 字地址指针 双字地址指针
60
地址指针的描述 字地址指针的描述:MW20 XXXX XXXX XXXX XXXX 表示0~65535
XXXX XXXX XXXX XXXX 表示0~65535 双字地址指针的描述:MD16、DB1.DBD0 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX bbb bbbb bbbb bbbb bxxx 字节编号 位编号 —1.2 —12 可描述范围:0.0~ 用双字格式访问字节、字、双字存储器,必须保证位编号为0。
61
实例 L +5 //将整数+5装入累加器1 T MW0 //将累加器1的内容传送给存储字MW0,此时MW0内容为5
OPN DB[MW0] //打开由MW0指出的数据块,即打开数据块5(DB5) L P# //将地址指针2# 装入A1 T MD2 //将累加器1的内容P#8.7传送给位存储区中的MD2 L P#4.0 //将2# 装入A1 累加器1原内容P#8.7被装入累加器2 +I //将累加器1和累加器2内容整数相加,在累加器1中得到的“和”为 2# (P#12.7) T MD6 //将累加器1的当前内容传送MD6(12.7) A I[MD2] //对输入位I8.7进行“与”逻辑操作,结果存放在RLO中 = Q[MD6] //将RLO赋值给输出位Q12.7
62
寻址方式四:寄存器间接寻址 在S7中有两个地址寄存器(AR1和AR2) 地址寄存器的内容 + 偏移量 = 地址指针
地址寄存器的内容 + 偏移量 = 地址指针 L P#8.6 LAR1 L P#10.0 LAR2 A I[AR1,P#1.0] = Q[AR2,P#4.1] //将P#8.6装入A 1 //将累加器1的内容传送至地址寄存器1 //将P#10.0装入A1 //将累加器1的内容传送至地址寄存器2 //AR1+偏移量(9.6) //AR2+偏移量(14.1) 这是区域内寄存器间接寻址——指令中给出存储区域标识 L P#I8.6 LAR1 L P#Q10.0 LAR2 A [AR1,P#1.0] = [AR2,P#4.1] //将指向I8.6的地址指针装入A 1 //将累加器1的内容传送至地址寄存器1 //将指向Q8.6的地址指针装入A 1 //将累加器1的内容传送至地址寄存器2 //AR1+偏移量(9.6) //AR2+偏移量(14.1) 等以后熟悉了再用 这是区域间寄存器间接寻址——存储区域的信息包含在地址指针中
63
XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX
存储器地址指针的描述 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX z000 0rrr bbb bbbb bbbb bbbb bxxx 字节编号 位编号 存储区域标识符P.255 0:区域内间接寻址 1:区域间间接寻址 XXXX XXXX XXXX XXXX XXXX XXXX XXXX XXXX z000 0rrr bbb bbbb bbbb bbbb bxxx 字节编号 位编号 —P#8.6 —P#I8.6 —P#Q8.6
64
实例1 作用: 把地址为0.0开始的64个开关量输入信号采用循环方式逐个转存到DB1,存放位置由DB1.DBX10.0开始的64个位。
L P#0.0 LAR1 L P#10.0 LAR2 L n1: T #loopcounter OPN DB1 CLR A I [AR1,P#0.0] = DBX [AR2,P#0.0] L P#0.1 +AR1 +AR2 L #loopcounter LOOP n1 作用: 把地址为0.0开始的64个开关量输入信号采用循环方式逐个转存到DB1,存放位置由DB1.DBX10.0开始的64个位。 Loopcounter为整形临时变量 累加器A1减1,A1不为0,则循环到n1
65
实例2 作用: 把地址为256.0开始的32个模拟量输入信号采用循环方式逐个转存到DB2,存放位置由DB2.DBD200开始的32个浮点数。
L P#256.0 LAR1 L P#200.0 LAR2 L n1: T #loopcounter OPN DB2 L PIW [AR1,P#0.0] T # Dec _In CALL "SCALE" IN : =# Dec_in HI_LIM : = e LO_LIM : = e BIPOLAR : =FALSE RET_VAL : =#ret OUT : =#In_result L #In_result T DBD[AR2,P#0.0] L P#2.0 +AR1 L P#4.0 +AR2 L #loopjsq LOOP n1 作用: 把地址为256.0开始的32个模拟量输入信号采用循环方式逐个转存到DB2,存放位置由DB2.DBD200开始的32个浮点数。 如果不同量程如何处理?
66
4.3.3 状态字 状态字表示CPU执行指令时所具有的状态,用户程序可以访问和检测状态字,并可以根据状态字中的某些位决定程序的走向和进程。
状态字 状态字表示CPU执行指令时所具有的状态,用户程序可以访问和检测状态字,并可以根据状态字中的某些位决定程序的走向和进程。 15 8 7 6 5 4 3 2 1 ······ BR CC1 CC0 OS OV OR STA RLO FC 首次检测位 * 逻辑操作结果* 状态位 或位 溢出位 溢出状态保持位 条件码0 条件码1 二进制结果位
67
首次检测位(FC) 位置:状态字位 “0” 作用:首次检测位FC 决定了对其接点信号的存放位置。 在逻辑串指令执行过程中 :
位置:状态字位 “0” 作用:首次检测位FC 决定了对其接点信号的存放位置。 在逻辑串指令执行过程中 : 若 FC =0,表明一个梯形逻辑网络的开始(或为首条逻辑串指令),CPU对操作数的检测结果(首次检测结果)直接保存在状态字的RLO位中,FC 位置1; 若FC =1,检测结果与RLO相运算,并把运算结果存于RLO 清除:执行输出指令(S、R、=)或与逻辑运算有关的转移指令时 FC被清0(表示逻辑串结束) OMRON PLC没有这个位,因为 OMRON有 LD 和 LD NOT
68
逻辑操作结果(RLO) Result of Logic Operation, RLO 位置:状态字位 “1”
位置:状态字位 “1” 作用:存储位逻辑指令或算术比较指令的结果。 所有的逻辑运算结果均放在此处!!
69
RLO、FC的变化示例 语句表 实际状态 检测结果 RLO FC 说明 FC=0:下一条指令开始新逻辑串 A I 0.0 1
FC=0:下一条指令开始新逻辑串 A I 0.0 1 首次检测结果存放RLO,FC置1 AN I 0.1 检测结果与RLO运算,结果存RLO =Q1.0 RLO赋值给Q1.0,FC清0 I0.0 I0.1 Q1.0
70
4.3.4 位逻辑运算指令 PLC中的触点包括常开触点(动合触点)和常闭触点(动断触点)两种形式。
位逻辑运算指令 PLC中的触点包括常开触点(动合触点)和常闭触点(动断触点)两种形式。 ※常开(动合)触点: “1”↔“动作”↔“闭合” “0”↔“不动作”↔“断开” ※常闭(动断)触点: “1”↔“动作”↔“断开” “0”↔“不动作”↔“闭合” 位逻辑运算指令主要包括: 与 -- A 与非 -- AN 或 -- O 或非 -- ON 异或 -- XOR 赋值 -- = 置位 -- S 复位 -- R
71
⑴串联逻辑 A、AN ( ) I0.0 I1.0 M2.1 Q4.0 “1” “0” A I 0.0 A I1.0 AN M2.1 = Q4.0 I0.0为“1” 且 I1.0为“1” 且 M2.1为“0” → Q4.0为“1” 语句表 实际状态 检测结果 RLO FC 说明 下一条指令表示一新逻辑串的开始 A I 0.0 1 首次检测结果 RLO,FC置1 A I1.0 检测结果与RLO “与”运算 RLO AN M2.1 = Q4.0 RLO Q4.0,FC清0
72
⑵并联逻辑 O、ON ( ) I0.0 Q4.0 I1.0 M2.1 O I 0.0 O I1.0 ON M2.1 = Q4.0 I0.0为“1” 或 I1.0为“1” 或 M2.1为“0” → Q4.0为“1” 语句表 实际状态 检测结果 RLO FC 说明 以下是新逻辑串的开始 O I 0.0 1 首次检测结果存放RLO,FC置1 O I1.0 检测结果与RLO运算,结果存RLO ON M2.1 = Q4.0 RLO赋值给Q4.0,FC清0
73
⑶ 串并联的复合达式和先“与”后“或” 当逻辑串是串并联的复合组合时,CPU的扫描顺序是先“与”后“或”。 ( ) I0.0 Q1.2
( ) I0.0 Q1.2 I0.4 I0.1 I0.3 I0.2 ( ) I0.0 Q1.2 I0.4 I0.1 I0.3 I0.2 A( O I0.0 ON I0.3 ) O I0.1 ON I0.4 A I0.2 = Q1.2 A( A I0.0 A I0.1 O AN I0.3 AN I0.4 ) A I0.2 = Q1.2
74
⑷ 输出指令(=) · 该操作把状态字中RLO的值赋给指定的操作数(位地址) · 把首次检测位(FC位)置0,来结束一个逻辑串
A I = Q = Q ( ) I0.0 Q1.2 Q1.3
75
⑸置位/复位指令 · 置位/复位指令根据RLO的值,来决定被寻址位的信号状态是否需要改变。
若RLO的值为1,被寻址位的信号状态被置l或清0; 若RLO是0,则被寻址位的信号保持原状态不变, 又被称为静态置位/复位【赋值输出(=)被称为动态赋值输出】 指令格式 指令示例 说明 S <位地址> S Q0.2 RLO为1,则被寻址信号状态置1, 即使RLO又变为 0,输出仍保持为1; FC 清0。 R<位地址> R M1.2 RLO为 1,则被寻址信号状态置0, 即使RLO又变为 0,输出仍保持为0;
76
4.4 程序结构 STEP7 有二种编程方法: 线性编程、结构化编程 A I0.0 主程序 A M1.0 函数(过程)1 …… BEU ……
4.4 程序结构 STEP7 有二种编程方法: 线性编程、结构化编程 A I0.0 A M1.0 …… BEU 主程序 函数(过程)1 函数(过程) n ……
77
程 序 代 码 数 据 系统函数 结构化编程的“块” STEP 7 C语言 组织块OB 功能块 数据块 OB1块 其它OB块 main()
中断函数 用户定义函数 FB块 功能块 类似于子程序/过程 FC块 数 据 数据块 DB块 全局变量 系统函数 SFB、SFC 库函数
78
数据块 PLC可定义的数据类型:bool、byte、int、dint、real、date、time等基本数据类型,以及数组、结构等复式数据类型 数据块定义的原则: · 先定义后访问 · S7 CPU允许建立不同大小的数据块,以序号区分 · 不同的CPU对允许定义的数据块数量及数据总量有限制 例如:CPU 314允许定义用作数据块的存储器最多8KByte, 用户定义的数据总量不能超过8K,否则将造成系统错误。
79
⑴ 数据块定义 有2种定义方式: ①用STEP 7开发软件包定义,使用前作为用户程序的一部分下载到CPU
②程序运行过程中通过系统函数动态定义数据块 (慎用,定义不当易崩溃)
80
⑵ 数据块访问 ·直接访问,指令中写明数据块号、类型、位置 L DB1.DBD2 //块号——1,双字,数据块中2~5字节
A DB1.DBX //块号——1,位, 2字节第2位 L “Temp”·T //符号地址 · “先打开后访问” OPN DB 1 L DBD //访问DB1.DBD2 OPN DI2 T DBD //访问DI2.DBD4 注:数据块没有专门的关闭指令,在打开一个新块时,先前打开的块自动关闭 因CPU只有DB和DI两个数据块地址寄存器,所以最多可同时打开两个块
81
⑶ 背景数据块和共享数据块 背景数据块:附属于某个FB块,数据块与某FB所要求的输入输出数据格式完全相符。背景数据库可以理解为某FB的输入实参体。 共享数据块:定义的数据可以被任何块读写访问 数据块在CPU的存储器中是没有区别的,只是由于打开方式不同,才在打开时有背景数据块和共享数据块之分。原则上,数据块都可以当作共享数据块使用。 数据块可以定义多个,以序号加以区分
82
4.4.2 逻辑功能块 ······ OB块不可以被调用 S7 PLC程序可以放在任何OB、FB、FC中
逻辑功能块 S7 PLC程序可以放在任何OB、FB、FC中 FB、FC可以被OB调用,也可以被其它FB、FC调用。 OB 应用程序 FB FC SFB SFC 其它 FB/FC/ SFB/SFC call ······ 不超过8级 应用程序 OB块不可以被调用
83
(1)FC块 FC功能块由两个主要部分组成:一是变量声明表;二是应用程序 包括:in、out、in_out、temp 变量申明表 应用程序
84
(2)FB块 FB功能块由两个主要部分组成:一是变量声明表;二是应用程序 包括:in、out、in_out、temp、stat 变量申明表
85
(3)变量说明 in out in_out 实现调用块和被调用块间的数据传递。 在调用功能块时给出,实参的数据类型必须与形参一致。 stat
静态变量定义在背景数据块中 当被调用块运行时,能读出或修改背景数据块中的静态变量;被调用块运行结束后,静态变量保留在背景数据块中。 temp 临时变量仅在逻辑块运行时有效,逻辑块结束时存储临时变量的内存被操作系统另行分配。
86
(4)FC、FB的调用 FB块的调用: CALL FB4 , DB33 a1:= a2:= b1:= c1:=
DB33中的数据结构应与FB4中的变量申明表结构(除temp变量)完全相同 FC功能块没有背景数据块,调用时赋实参(数据类型相同): CALL FC1 a1:= DB1.DBD0.0 a2:= DB2.DBW6.0 b1:= DB10.DBX5.6 c1:= MW12
87
(5)其它 ★ FB、FC可以定义多个,以序号区分。 ★ S7CPU中可使用的B堆栈大小是有限制的,对于S7300 CPU可在B堆栈中存储8个块的信息,因此在控制程序中最多可同时激活8个块。
88
4.4.3 组织块及中断优先级 DB/FB/FC可以根据需要定义,以序号区分 同一类的块没有“贵贱”之别
OB块也可以根据需要定义,以序号区分 但不同的块功能不同,且有“优先级”之别 1.每一个OB可以对应为一种中断,不同的OB对应有不同的优先级 2. OB1是主循环块,任何S7PLC系统都需要OB1,所以优先级最低 问题:从过程控制的角度看,除了OB1之外,通常还需要哪些中断?
89
— 部分OB块的优先级: OB块 说明 优先级 OB1主循环r★★ 基本组织块,循环扫描 1(最低) OB10时间中断
根据设置的日期、时间定时启动 2 OB20延时中断 受SFC22控制启动后延时特定时间允许 3 OB35循环中断★★ 根据特定的时间间隔允许 12 OB40硬件中断 检测到外部模块的中断请求时允许 16 OB80~0B87异步错误中断★ 检测到模块诊断错误或超时错误时启动 26 OB100启动★ 当CPU从STOP状态到RUN状态时启动 27
90
注意事项 一个OB块可以形成一个程序链(OB调用FB/FC,FB/FC调其它FB/FC)
所有程序的临时变量存放在L堆栈中,L堆栈是有限的,如:CPU 314 的L堆栈为1536Byte,供程序中的所有优先级划分使用。 对于CPU 314,允许每个优先级及所有嵌套调用中激活块的自定义临时 变量总数不能超过236Byte(有20B被OB自己占用了),否则L堆栈会 溢出,导致CPU有RUN模式变为STOP模式。 问题:如果临时变量不够用怎么办?
91
OB35 使用20字节L堆栈 功能块或 系统功能块 L堆栈 ≤256字节 总共1536字节 OB1 背景数据块 优先级12
92
3个常用组织块 OB100 OB1 OB80 STOP (1) 初始化块(OB100)
当PLC从STOP状态切换到RUN状态后,CPU首先调用OB100一次,OB100调用结束后,操作系统开始进入程序运行; 如没有OB100,则系统不对任何参数进行初始化。
93
(2) 主循环块(OB1) OB1是最基本的组织块,当OB100调用结束后,操作系统开始周而复始地调用OB1,这称为扫描循环。 调用OB1的时间间隔称为扫描周期,扫描周期的长短,主要由 OBI中的程序执行所需时间决定。 OB1必须存在,但OB1中不一定需要放置代码。 为防止程序陷入死循环,可以设置确定主循环的最长时间。正常情况下,扫描周期小于该时间,如果扫描周期大于设定主程序最大允许循环行时间,操作系统调用OB80(循环时间超时),若OB 80中未编写程序,CPU将转入停止(STOP)状态。
94
(3)循环中断(OB 35) S7-300 PLC允许设计一个以固定间隔运行的定时中断组织块OB35,定时时间间隔可以在lms~lmin的范围内设置,当允许循环中断时,OB35以固定的间隔循环运行,但要求确保设置的定时时间间隔大于OB35的执行时间,否则将造成系统异常,操作系统将调用异步错误OB 80。
95
4.4.4 逻辑块的调用关系 操 作 系 统 OB1 FB、SFB 共享DB 背景DB FC、SFC OB35、OB10、OB20……
96
4.5 S7 PLC的网络通信 现代计算机控制系统已不再是自动化的“孤岛”,而是集过程控制、生产管理、网络通信、IT技术等为一体的综合自动化系统,系统最主要的结构特征表现为一个多层次的网络体系。 S7 PLC的网络功能很强,它可以适应不同控制需要的网络体系,也为各个网络层次提供互联模块或接口装置,通过通信子网把PLC、PG、PC、OP及其它控制设备互联起来。 S7 PLC可以提供:MPI——Multipoint Interface PROFIBUS-DP Industrial Ethernet 这3种通信方式都有各自的技术特点和不同的适应面。
97
通信子网 特征 MPI PROFIBUS-DP Industrial Ethernet 工业以太网 标准 SIEMENS EN50170 Vol.2 IEEE802.3 介质访问技术 令牌环令 令牌环+主从式 CSMA/CD 传输速率 187.5Kbps 9.6Kbps~12Mbps 10Mbps / 100Mbps 常用传输介质 屏蔽2芯电缆 塑料光纤 玻璃光纤 屏蔽双绞线 屏蔽同轴电缆 最大站点数 32 127 >1000 拓扑结构 总线型、树型、星型、环型 通信服务 S7函数、GD S7函数、DP、FDL等 S7函数、TCP/IP等 适用范围 现场设备层、控制单元层 控制层、管理层
98
(1)PLC机架的三种通信(集成)方式 优先考虑 控制室 PLC CR 现场 对象1 对象n IM365/IM365——本地集成一
IM153——分布式IO 优先考虑 控制室 对象1 RIOU 对象n PLC CR Profibus-DP总线 现场
99
(2)PLC与上位机的三种通信方式 MPI通信 物理层符合RS485标准,是一种低成本的网络系统,用于连接多个不同的CPU或设备。
多数SIMATIC产品都集成有MPI接口 OS* S7 300 S7 400 PG OP MPI
100
MPI通信 一个MPI网最多允许连接32个网络站点,它的传输速率是187.5Kbps,因此,MPI子网主要适用于站点数不多、数据传输量不大的应用场合。 MPI连接距离有限,从第一个节点到最后一个节点最长距离仅为50m。对于一个要求较大区域的信号传输,采用两个中继器可以将MPI通信电缆最大长度延伸到1100m。 图7.46 MPI子网的扩展 ≤50米 ≤1000米 RS485转发器 (中继器) 适用于多数中小系统
101
Profibus-DP通信 说明: 1.CPU上需要有DP接口,可以是集成的,也可以式扩展的(如CP342-5) 2.最大站点数127
OS* S7 300 S7 400 Profibus-DP 说明: 1.CPU上需要有DP接口,可以是集成的,也可以式扩展的(如CP342-5) 2.最大站点数127 3.最大通信距离(不加中继器)1200米,与通信波特率有关 4.OS需要配置接口卡(如CP5611等) 5.OS需要软件支持
102
Ethernet通信 说明: 1.PLC上需要配置以太网扩展接口模块(如CP343-1等,P.271) 2.OS上可以用普通网卡
3.OS需要软件支持(如基于OPC的通信支持软件包)
103
(3)PLC与PLC的三种通信方式 MPI通信 物理层符合RS485标准,是一种低成本的网络系统,用于连接多个不同的CPU或设备。
多数SIMATIC产品都集成有MPI接口 OS* S7 300 S7 400 PG OP MPI
104
MPI通信 S7 300 S7 400 MPI GD通信,参见P268
105
Profibus-DP通信 S7函数通信 CALL "AG_RECV“ CALL "AG_SEND"
左边发送的数据即是右边接收的数据,发送方和接收方的数据长度要统一
106
DP coupler通信 DP/DP coupler 定义通信,需要通信的数据只需要在DP coupler上配置,即可实现自动通信
S7 400 -DP1 RIOU S7 300 -DP2 RIOU DP/DP coupler 定义通信,需要通信的数据只需要在DP coupler上配置,即可实现自动通信 发送方和接收方的数据长度要统一
107
与RS232之间的通信 (4)PLC与其它协议的通信 CP340(6ES7 340-1AH02-0AE0)或
-DP2 RIOU RS232 仪表 节点
108
与RS422/RS485之间的通信 CP340(6ES7 340-1CH02-0AE0)或
-DP2 RIOU RS485 仪表 节点
109
作业:阅读以下程序,写出程序功能(文字描述或框图均可)
L e+000 L #en1 *R T #zc4 L #en0 L #zc4 -R L #en2 +R L #zc3 L #zc2 L #zc1 T #d_Vout L #Vout T #Vout L #Vout L e+000 <R JCN n2 L e+000 T #Vout n2: L #Vout L e+002 >R JCN n3 T #Vout n3: L #en1 T #en2 T #en1 BEU //本段程序结束 CLR //清除RLO,使RLO=0 A #Po_Ne JCN z1 //RLO=“0”,跳转至z1 L #in_sp L #in_Vn -R T #en0 JU f1 //无条件跳转至f1 z1: L #in_Vn f1: L #en1 L #A1 *R T #zc1 L e-001 L #A2 /R L #en0 T #zc2 L #A3 L #A1 T #zc3
110
6月7日作业 教材P281、P282中7-11、7-12两题
Similar presentations