s7-300怎么才能从s71200程序实例中的开关量找到模块上对应的开关量点

第一章&S7-300/400的基本结构1、&&&&S7-300/400属于模块式PLC,主要由机架、CPU模块、信号模块、功能模块、接口模块、通信处理器、电源模块和编程设备(工程师、操作员站和操作屏)组成。图1-1&&PLC控制系统示意图PLC的主要生产厂家:德国的西门子(Siemens)公司,美国Rockwell公司所属的AB公司,GE-Fanuc公司,法国的施耐德(Schneider)公司,日本的三菱和欧姆龙(OMRON)公司。PLC的工作过程&表1-1&&&逻辑运算关系表与&&&&或&&&&非Q4.0=I0.0*I0.1&&&&Q4.1&=&I0.2+I0.3&&&&Q4.2&=/I0.4I0.0&&&&I0.1&&&&Q4.0&&&&I0.2&&&&I0.3&&&&Q4.1&&&&I0.4&&&&Q4.20&&&&0&&&&0&&&&0&&&&0&&&&0&&&&0&&&&10&&&&1&&&&0&&&&0&&&&1&&&&1&&&&1&&&&01&&&&0&&&&0&&&&1&&&&0&&&&1&&&&&&&&1&&&&1&&&&1&&&&1&&&&1&&&&1&&&&&&&&在CPU模块上有存储器(用来存放系统程序、用户程序、逻辑变量和其它一些信息),包括ROM和RAM。可通过扩展槽扩展用户RAM。l&&&&RAM:主程序区OB1+子程序区(FB、FCB、定时中断块等)断电时由锂电池供电(几年)以免RAM中信息丢失。锂电池电压&&规定值,灯报警,换电池(期间靠电容充电几分钟)。l&&&&PLC采用循环执行用户程序的方式。OB1是用于循环处理的组织块(主程序),它可以调用别的逻辑块,或被中断程序(组织块)中断。在起动完成后,不断地循环调用OB1,在OB1中可以调用其它逻辑块(FB,&SFB,&FC或SFC)。循环程序处理过程可以被某些事件中断。在循环程序处理过程中,CPU并不直接访问I/O模块中的输入地址区和输出地址区,而是访问CPU内部的输入/输出过程映像区。批量输入、批量输出。&梯形图中Q4.0的线圈(称为内部线圈)“通电”时,对应的输出过程映像位为1状态。信号经输出模块隔离和功率放大后,继电器型输出模块中对应的硬件继电器的线圈(外部线圈)通电,其常开触点闭合,使外部负载通电工作。外部输入电路接通时,对应的输入过程映像位(例如I0.0)为1状态,梯形图中对应的输入位的常开触点接通,常闭触点断开。某一编程元件对应的过程映像位为1状态时,称该编程元件为ON,过程映像位为0状态时,称该编程元件为OFF。循环时间(Cycle&time):&是指操作系统执行一次图1-4所示的循环操作所需的时间,又称为扫描循环时间(Scan&Cycle&Time)或扫描周期。如0.7ms、1.7ms等l&&&&性能指标:I/O点数、扫描周期、指令数目、功能模块多少、&A(&&&&&&&&&&O&&&&&&&&I0.1&&&&//&接在左侧母线上的I0.1的常开触点&&&&&&&&&&O&&&&&Q4.0&&&&//&与I0.1的常开触点并联的Q4.0的常开触点&&&&&&&&&&)&&&&&&&&&&&AN&&&&I0.2&&&&&&&&//&与并联电路串联的I0.2的常闭触点&&&&&&&&&=&&&&&&&&&Q4.0&&&&&&&&//&Q4.0的线圈梯形图对应的逻辑表达式:&&Q4.0&=&(I0.1+Q4.0)&l&&&&PLC性能指标:第二章&西门子PLC的分类1.S7系列:传统意义的PLC产品,&S7-200是针对低性能要求的小型PLC。S7-300是模块式中小型PLC,最多可以扩展32个模块。S7-400是大型PLC,可以扩展300多个模块。S7-300/400可以组成MPI、PROFIBUS和工业以太网等。2.M7-300/400:采用与S7-300/400相同的结构,它可以作为CPU或功能模块使用。具有AT兼容计算机的功能,可以用C,C++或CFC等语言来编程。3.C7由S7-300&PLC,HMI(人机接口)操作面板、I/O、通信和过程监控系统组成。4.WinAC基于Windows和标准的接口(ActiveX,OPC),提供软件PLC或插槽PLC。&S7-300系列PLC简介S7-300的CPU模块(简称为CPU)都有一个编程用的RS-485接口,有的有PROFIBUS-DP接口或PtP串行通信接口,可以建立一个MPI(多点接口)网络或DP网络。&1.电源模块&&2.后备电池&&3.&24V&DC&连接器&&4.模式开关&&&&&&5.状态和故障指示灯6.存储器卡(CPU&313&以上)&&&&&&7.&MPI多点接口&&&&&&8.前连接器&&&&&&9.前盖图2-2&&S7-300&PLC功能最强的CPU的RAM为512KB,最大8192个存储器位,512个定时器和512个计数器,数字量最大65536&I/O点,模拟量通道最大为4096。有350多条指令。一个数字量为1点,一个模拟量为16点。计数器的计数范围为1~999,定时器的定时范围为10ms~9990s。&图2-3&&S7-300的安装&图2-4&&多机架的S7-300&PLC只需要扩展一个机架,可以使用价格便宜的IM&365接口模块对。数字量模块:从0号机架的4号槽开始,每个槽位分配4个字节的地址,32个I/O点。模拟量模块:一个通道占一个字地址。从I&B256开始,给每一个模拟量模块分配8个字。1.模块诊断功能可以诊断出以下故障:失压,熔断器熔断,看门狗故障,EPROM、RAM故障。模拟量模块共模故障、组态/参数错误、断线、上下溢出。2.过程中断数字量输入信号上升沿、下降沿中断,模拟量输入超限,CPU暂停当前程序,处理OB40。3.状态与故障显示LEDSF(系统出错/故障显示,红色):CPU硬件故障或软件错误时亮。BATF(电池故障,红色):电池电压低或没有电池时亮。DC&5V(+5V电源指示,绿色):&5V电源正常时亮。FRCE(强制,黄色):至少有一个I/O被强制时亮。RUN(运行方式,绿色):CPU处于RUN状态时亮;重新启动时以2&Hz的频率闪亮;&HOLD(单步、断点)状态时以0.5Hz的频率闪亮。STOP(停止方式,黄色):CPU处于STOP,HOLD状态或重新启动时常亮。BUSF(总线错误,红色)。&图2-5&&CPU&318-2的面板4.模式选择开关(1)RUN-P(运行-编程)位置:运行时还可以读出和修改用户程序,改变运行方式。(2)RUN&(运行)位置:CPU执行、读出用户程序,但是不能修改用户程序。(3)STOP(停止)位置:不执行用户程序,可以读出和修改用户程序。(4)MRES(清除存储器):不能保持。将钥匙开关从STOP状态搬到MRES位置,可复位存储器,使CPU回到初始状态。复位存储器操作:通电后从STOP位置扳到MRES位置,“STOP”LED熄灭1s,亮1s,再熄灭1s后保持亮。放开开关,使它回到STOP位置,然后又回到MRES,“STOP”LED以2Hz的频率至少闪动3s,表示正在执行复位,最后“STOP”LED一直亮。某些CPU模块上有集成I/O。PLC使用的物理存储器:RAM,ROM,快闪存储器(Flash&EPROM)和EEPROM。S7-300&CPU的分类&&&&1.紧凑型CPU:CPU&312C,313C,313C-PtP,313C-2DP,314C-PtP和314C-2DP。各CPU均有计数、频率测量和脉冲宽度调制功能。有的有定位功能,有的带有I/O。2.标准型CPU:CPU&312,CPU&313,314,315,315-2DP和316-2DP。3.户外型CPU:CPU&312&IFM,314&IFM,314户外型和315-2DP。在恶劣的环境下使用。4.高端CPU:317-2DP和CPU&318-2DP。5.故障安全型CPU:CPU&315F。S7-300的输入/输出模块输入/输出模块统称为信号模块(SM)。前连接器插在前盖后面的凹槽内。一个编码元件与之啮合,该连接器只能插入同类模块。&两线式接近开关的漏电流小于输入模块允许的静态电流,汇点输入的电流流进输入模块,反之为源输入电路。&&SM323是S7-300的数字量输入输出模块,8DI/8DO,16DI/16DO。&表2-13&&SM331模拟量输入模块的模拟值范围&&&&双极性&&&&百分比&&&&十进制&&&&十六进制&&&&±5V&&&&±10&V&&&&±20&mA上溢出&&&&118.515%&&&&32767&&&&7FFFH&&&&5.926&V&&&&11.851V&&&&23.70&mA超出范围&&&&117.589%&&&&32511&&&&7EFFH&&&&5.879&V&&&&11.759V&&&&23.52&mA正常范围&&&&100.000%&&&&27648&&&&6C00H&&&&5V&&&&10&V&&&&20&mA&&&&0&%&&&&0&&&&0H&&&&0V&&&&0&V&&&&0mA&&&&-100.000%&&&&-&27648&&&&9400H&&&&-5V&&&&-&10&V&&&&-20&mA低于范围&&&&-117.593%&&&&-&32512&&&&8100H&&&&-5.879&V&&&&-&11.759&V&&&&-23.52&mA下溢出&&&&-118.519%&&&&-&32768&&&&8000H&&&&-5.926&V&&&&-&11.851&V&&&&-23.70&mA范围&&&&单极性&&&&百分比&&&&十进制&&&&十六进制&&&&0~10&V&&&&0~20&mA&&&&4~20&mA上溢出&&&&118.515%&&&&32767&&&&7FFFH&&&&11.852&V&&&&23.70&mA&&&&22.96mA超出范围&&&&117.589%&&&&32511&&&&7EFFH&&&&11.759&V&&&&23.52&mA&&&&22.81mA正常范围&&&&100.000%&&&&27648&&&&6C00H&&&&10&V&&&&20&mA&&&&20&mA&&&&0&%&&&&0&&&&0H&&&&0&V&&&&0&mA&&&&4&mA低于范围&&&&-&17.593&%&&&&-&4864&&&&ED00H&&&&&&&&-&3.52&mA&&&&1.185mA模拟值的精度小于15&位,则模拟值左移,左对齐。【例2-2】的量程为0~10MPa,输出信号为4~20mA,模拟量输入模块的量程为4~20mA,转换后的数字量为0~27&648,设转换后得到的数字为N,试求以kPa为单位的压力值。&&&&解:0~10MPa(0~10&000kPa)对应于转换后的数字0~27&648,转换公式为P&=&10&000&&&N&/&27&648&&(kPa)注意:在运算时一定要先乘后除,否则可能会损失原始数据的精度。&图2-13&&量程卡&&&&【例2-3】某发电机的电压互感器的变比为10kV/100V(线电压),电流互感器的变比为1000A/5A,功率变送器的额定输入电压和额定输入电流分别为AC&100V和5A,额定输出电压为&DC&±10V,模拟量输入模块将DC&±10V输入信号转换为数字+27648和-27649。设转换后得到的数字为N,求以kW为单位的有功功率值。解:根据互感器额定值计算的原边有功功率额定值为&由以上关系不难推算出互感器原边的有功功率与转换后的数字之间的关系为1&=&0.62648&kW&/&字。转换后的数字为N时,对应的有功功率为0.6265&N&(kW),如果以kW为单位显示功率P,使用定点数运算时的计算公式为&&&&P&=&N&&&6&265&/&10&000&&(kW)&&&&【例2-4】用于测量锅炉炉膛压力(−60&Pa~60&Pa)的变送器的输出信号为4~20mA,模拟量输入模块将0~20mA转换为数字0~27&648,设转换后得到的数字为N,试求以0.1Pa为单位的压力值。&&&&解:4~20mA的模拟量对应于数字量,即&#0(0.1Pa)对应于数字量5&530~27&648,压力的计算公式应为&1.EX系列数字量模拟量输入/输出模块EX模块在化工等行业使用。将外部的本质-安全设备(用于有爆炸危险区域的传感器和执行器)与PLC非本质-安全内部回路隔离。2.F系列数字量模拟量输入/输出模块&&&&这些模块具有故障安全运行的集成安全功能,在ET&200M分布式I/O或S7-300F中使用。用于连接有爆炸危险区域的设备。S7-300的功能模块1.计数器模块模块的计数器均为0~32位或&31位加减计数器,可以判断脉冲的方向,模块给编码器供电。达到比较值时发出中断。可以2倍频和4倍频计数。有集成的DI/DO。FM&350-1是单通道计数器模块,可以检测最高达500kHz的脉冲,有连续计数、单向计数、循环计数3种工作模式。FM&350-2&和CM&35都是8通道智能型计数器模块。2.位置控制与位置检测模块FM&351双通道定位模块用于控制变级调速电动机或变频器。FM&353是步进电机定位模块。FM&354伺服电机定位模块。FM&357可以用于最多4个插补轴的协同定位。FM&352高速电子凸轮控制器,它有32个凸轮轨迹,13个集成的DO,采用增量式编码器或绝对式编码器。SM&338超声波传感器检测位置,无磨损、保护等级高、精度稳定不变。3.闭环控制模块FM&355闭环控制模块有4个闭环控制通道,有自优化温度控制算法和PID算法。4.称重模块SIWAREX&U称重模块是紧凑型电子称,测定料仓和贮斗的料位,对吊车载荷进行监控,对传送带载荷进行测量或对工业提升机、轧机超载进行安全防护等。SIWAREX&M称重模块是有校验能力的电子称重和配料单元,可以组成多料称系统,安装在易爆区域。5.电源模块PS&307电源模块将120/230伏交流电压转换为24V直流电压,为S7-300/400、传感器和执行器供电。输出电流有2A、5A或10A&3种。电源模块安装在DIN导轨上的插槽1。&图2-17&&S7-300的浮动参考电位某些大型工厂(例如化工厂和发电厂)为了监视对地的短路电流,可能采用浮动参考电位,可以将M点与接地点之间的短接片去掉。2.5&&S7-400系列PLC的硬件组成模块的尺寸为25(宽)×290(高)×210(深)mm。高&炉&喷&煤&工&程构成图。&&集中式扩展方式适用于小型配置或一个控制柜中的系统。CC和EU的最大距离为1.5m(带5V电源)或3m(不带5V电源)。分布式扩展适用于分布范围广的场合,CC与最后一个EU的最大距离为100m(S7&EU)或600m(S5&EU)。用ET&200分布式I/O可以进行远程扩展,用于分布范围很广的系统。通过CPU中的PROFIBUS-DP接口,最多连接125个总线节点。使用光缆时CC和最后一个节点的距离为23km。2.S7-400的特点(1)运行速度高,S7&416执行一条二进制指令只要0.08ms。(2)存储器容量大,例如CPU&417-4的RAM可以扩展到16MB,装载存储器(FEPROM或RAM)可以扩展到64MB。(3)I/O扩展功能强,可以扩展21个机架,S7&417-4最多可以扩展262144个数字量I/O点和16384个模拟量I/O。(4)有极强的通信能力,集成的MPI能建立最多32个站的简单网络。大多数CPU集成有PROFIBUS-DP主站接口,用来建立高速的分布式系统,&通信速率最高12M&bit/s。锅炉系统构成图2.5.2&&机架与接口模块(1)通用机架UR1/UR2(2)中央机架,CR2是18槽,一个电源模块和两个CPU模块。CR3是4槽的中央机架,有I/O总线和通信总线。&图2-17&&机架与总线(3)扩展机架ER1/ER2ER1和ER2是扩展机架,分别有18槽和9槽,只有I/O总线。(4)UR2-H机架UR2-H机架用于在一个机架上配置一个完整的S7-400H冗余系统,每个均有自己的I/O。两个电源模块和两个冗余CPU模块。2.5.3&&S7-400的通信功能MPI、PROFIBUS-DP、工业以太网或AS-i现场总线,周期性自动交换I/O模块的数据。或基于事件驱动,由用户程序块调用。2.5.4&&冗余设计的容错自动化系统S7-400H&S7&Software&Redundancy(软件冗余性)可选软件在S7-300和S7-400标准系统上运行。生产过程出现故障时,在几秒内切换到替代系统。S7-400H主要器件都是双重的:CPU、电源模块以及连接两个CPU的硬件……3.S7-400H冗余控制PLC的工作原理S7-400H采用“热备用”模式的主动冗余原理,在发生故障时,无扰动地自动切换。两个控制器使用相同的用户程序,接收相同数据,两个控制器同步地更新内容,任意一个子系统有故障时,另一个承担全部控制任务。2.5.5&&安全型自动化系统S7-400F/FHS7-400F/FH使用标准模块和安全型模块,整个工厂用相同的标准工具软件来配置和编程。2.5.6&&多CPU处理S7-400中央机架上最多4个具有多CPU处理能力的CPU同时运行。这些CPU自动地、同步地变换其运行模式。适用场合:程序太长,存储空间不够,系统可以分。通过通信总线,CPU彼此互连。2.5.9&&输入/输出模块S7-400的信号模块地址在STEP&7中自动生成。用户可以修改。S7-400的模拟量模块起始地址从512开始,同类模块的地址按顺序连续排列。表2-5&&模块地址举例0号机架&&&&1号机架槽号&&&&模块种类&&&&地址&&&&槽号&&&&模块种类&&&&地址1&&&&PS&417&10A电源模块&&&&&&&&1&&&&32点DI&&&&IB4~IB72&&&&&&&&&&&&&2&&&&&16点DO&&&&QB2,QB33&&&&CPU&412-2DP&&&&&&&&3&&&&16点DO&&&&QB4,QB54&&&&&16点DO&&&&QB0,QB1&&&&4&&&&&8点AO&&&&QW528~QW5435&&&&&16点DI&&&&IB0,IB1&&&&5&&&&&8点AI&&&&IW544~IW5596&&&&&8点AO&&2个字节&&&&QW512~QW527&&&&6&&&&&16点DO&&&&QB6,QB77&&&&&16点AI2&个字节&&&&IW512~IW543&&&&7&&&&&8点AI&&&&IW560~IW5758&&&&&16点DI&&&&IB2,IB3&&&&8&&&&&32点DI&&&&IB8~IB119&&&&&IM460-1&&&&4093&&&&9&&&&&IM461-0&&&&4092表2-6&&S7-300与S7-400性能比较接近的功能模块功能模块&&&&S7-300系列&&&&S7-400系列计数器模块&&&&FM&350-1&&&&FM&450-1定位模块&&&&FM&351,双通道&&&&FM&451,3通道定位模块&&&&FM&353,双通道&&&&FM&453,3通道电子凸轮控制器&&&&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.1&&S7-300/400的编程语言3.1.1&&PLC编程语言的国际标准IEC&61131是PLC的国际标准,年发布了IEC&61131标准中的1~4部分,我国在1995年11月发布了GB/T&/3/4(等同于IEC&/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.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编程语言适合于熟悉高级编程语言(例如PASCAL或C语言)的人使用。&&&&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#01_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#01&0110。2#10&1000对应的十进制数也是296,对应的十进制数为&。3.2.2&基本数据类型&1.位(bit):位数据的数据类型为BOOL(布尔)型。I3.2的意义。2.字节(Byte)3.字(Word)表示无符号数。取值范围为W#16#0000~W#16#FFFF。4.双字(Double&Word)表示无符号数。范围DW#16#~DW#16#FFFF_FFFF。5.16位整数(INT,Integer)是有符号数,补码。最高位为符号位,为0时为正数,取值范围为-32&768~32&767。6.32位整数(DINT,Double&Integer)最高位为符号位,取值范围为&&MB100&&&&&M表示内部存储区-2&147&483&648~2&147&483&647。&图3-6&&字节、字和双字3.2.3&复合数据类型与参数类型1.复合数据类型通过组合基本数据类型和复合数据类型可以生成下面的数据类型:(1)&&&&数组(ARRAY)(2)&&&&结构(STRUCT)(3)&字符串(STRING)是最多有254个字符(CHAR)的一维数组。(4)&日期和时间(DATE_AND_TIME)用于存储年、月、日、时、分、秒、毫秒和星期,占用8个字节,用BCD格式保存。星期天的代码为1,星期一~星期六的代码为2~7。例如DT#-12:30:15.200为日12时30分15.2秒。(5)&用户定义的数据类型UDT&(user-defined&data&types)。在数据块DB和逻辑块的变量声明表中定义复合数据类型。2.参数类型为在逻辑块之间传递参数的形参(formal&parameter,形式参数)定义的数据类型:(1)&TIMER(定时器)和COUNTER(计数器):对应的实参(actual&parameter,实际参数)应为定时器或计数器的编号,例如T3,C21。(2)&BLOCK(块):指定一个块用作输入和输出,实参应为同类型的块。3.2.5&&系统存储器&&&(存储器RAM&=&用户RAM&+&系统RAM)1.过程映像输入/输出(I/Q)在扫描循环开始时,CPU读取数字量输入模块的输入信号的状态,并将它们存入RAM中过程映像输入(process&image&input,PII)中。在扫描循环中,用户程序计算输出值,并将它们存入过程映像输出表(process&image&output,PIQ)。在循环扫描结束时将过程映像输出表的内容写入数字量输出模块。I和Q均以按位、字节、字和双字来存取,例如I0.0,&&Q4.0、IB0,&IW0和ID0。与直接访问I/O模块相比的优缺点。&2.内部存储器标志位(M)存储器区&&&MB13.定时器(T)存储器区时间值可以用二进制或BCD码方式读取。4.计数器(C)存储器区计数值(0~999)可以用二进制或BCD码方式读取。5.共享数据块(DB)与背景数据块(DI)DB为共享数据块,DBX2.3,DBB5,DBW10和DBD12。DI为背景数据块,DIX,&DIB,DIW和DID。6.外设I/O区(PI/PO)&&&&外设输入(PI)和外设输出(PQ)区允许直接访问本地的和分布式的输入模块和输出模块。可以按字节(PIB或PQB)、字(PIW或PQW)或双字(PID或PQD)存取,不能以位为单位存取PI和PO。3.2.6&&CPU中的寄存器1.累加器(ACCUx)累加器用于处理字节、字或双字的寄存器。S7-300有两个32位累加器(ACCU1和ACCU2),S7-400有4个累加器(ACCU1~ACCU4)。数据放在累加器的低端(右对齐)。2.状态字寄存器(16位)首次检测位/FC,&逻辑运算结果(RLO);状态位STA不能用指令检测;OR位暂存逻辑“与”的操作结果(先与后或);算术运算或比较指令执行时出现错误,溢出位OV被置1。OV位被置1时溢出状态保持位OS位也被置1,OV位被清0时OS仍保持为1,用于指明前面的指令执行过程中是否产生过错误。条件码&1(CC1)和条件码0(CCO)综合起来用于表示在累加器1中产生的算术运算或逻辑运算的结果与0的大小关系、比较指令的执行结果或移位指令的移出位状态。二进制结果位(BR)在一段既有位操作又有字操作的程序中,用于表示字操作结果是否正确。在梯形图的方框指令中,BR位与ENO有对应关系,用于表明方框指令是否被正确执行:如果执行出现了错误,BR位为0,ENO也为&0;如果功能被正确执行,BR位为&1,ENO也为&1。&图3-9&&状态字的结构&3.数据块寄存器:DB和DI寄存器分别用来保存打开的共享数据块和背景数据块的编号。3.3&&位逻辑指令&&&&位逻辑指令用于二进制数的逻辑运算。位逻辑运算的结果简称为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&2.&&&&取反触点&&3.电路块的串联和并联&4.中线输出指令&&下面是图3-14(b)中第一行对应的语句表。&&&&&&&&A&&&&&&&&I0.0&&&&&&AN&&&&&&&&I0.1&&&&&&=&&&&&&&&&M0.1&&&&&&A&&&&&&&&&M0.1&&&&&&A&&&&&&&&&I0.3&&&&&&=&&&&&&&&&Q4.3&&&&&Network&1:A&&&&&&&&I0.3A&&&&&&&&I0.0&&&&FP=&&&&&&&&Q4.5&Network&2:&&&&&&&&&&&A&&&&&&&&I0.3A&&&&&&&&I0.0FN=&&&&&&&&Q4.3&A&&&&&&&&&I0.3A(&&&&A&&&&&&&&&I0.4BLD&&&&&&100&&FN&&&&&&&&M0.1&&&&&&&)&&&&&&&&=&&&&&&&&&Q4.5【例3-1】设计故障信息显示电路,故障信号I0.0为1使Q4.0控制的指示灯以1Hz的频率闪烁。操作人员按复位按钮I0.1后,如果故障已经消失,指示灯熄灭。如果没有消失,指示灯转为常亮,直至故障消失。&设置CPU的属性时,在“Cycle/Clock&Memory”标签页令M1为时钟存储器字节,其中的M1.5提供周期为1s的时钟脉冲。&&&SET与CLR(Clear)指令将RLO(逻辑运算结果)置位或复位,紧接在它们后面的赋值语句中的地址将变为1状态或0状态。SET&&&&&&&&&&&&//将RLO置位=&M0.2&&&&&&&&//M0.2的线圈“通电”CLR&&&&&&&&&&&&//将RLO复位=&Q4.7&&&&&&&&//Q4.7的线圈“断电”3.4.1&&定时器指令&&在CPU内部,时间值以二进制格式存放,占定时器字的0~9位。可以按下列的形式将时间预置值装入累加器的低位字:(1)&十六进制数W#16#wxyz,其中的w是时间基准,xyz是BCD码形式的时间值。(2)&S5T#aH_bM_cS_Dms,例如S5T#18S。时基代码为二进制数00,01,10和11时,对应的时基分别为10ms,100ms,1s和10s。6.脉冲定时器&类似于上升沿触发的单稳态电路。S5脉冲定时器(Pulse&S5&Timer),S为设置输入端,TV为预置值输入端,R为复位输入端;Q为定时器位输出端,BI输出不带时基的十六进制格式,BCD输出BCD格式的当前时间值和时基。定时器中的S,R,Q为BOOL(位)变量,BI和BCD为WORD(字)变量,TV为S5TIME量。各变量均可以使用I,&Q,&M,&L,&D存储区,&TV也可以使用定时时间常数S5T#。&A&&&&&&&&&I&1.2FR&&&&&&&&&T0&&&&&&&&//允许定时器T1再起动A&&&&&&&&I&0.0L&&&&&&&&&S5T#2s&&&&&//预置值2s送入累加器1SP&&&&&&&&&T0&&&&&&&&&//启动T0A&&&&&&&&I&0.1R&&&&&&&&&T0&&&&&&&&&//复位T0L&&&&&&&&&T0&&&&&&&&&//将T0的十六进制时间当前值装入累加器1T&&&&&&&&&MW10&&&&//将累加器1的&&&&内容传送到MW10LC&&&&&&&&&T0&&&&&&&&&//将T0的BCD时间当前值装入累加器1.T&&&&&&&&&MW12&&&&//将累加器1的内容传送到MW12A&&&&&&&&&T0&&&&&&&&&//检查T0的信号状态=&&&&&&&&&Q&4.0&&&&//T0的定时器位为1时,Q4.0的线圈通电仅在语句表中使用的FR指令允许定时器再起动,即控制FR的RLO(I1.2)由0变为1状态时,重新装入定时时间,定时器又从预置值开始定时。再起动只是在定时器的起动条件满足(图3-28中的I0.1=1)时起作用。该指令可以用于所有的定时器,但是它不是起动定时器定时的必要条件。8.扩展的脉冲定时器&&10.接通延时定时器&&&12.保持型接通延时定时器&&14.断开延时定时器线圈&&3.4.2&&计数器指令1.计数器的存储器区每个计数器有一个16位的字和一个二进制位。&&&&&计数器字的0~11位是计数值的BCD码,计数值的范围为0~999。二进制格式的计数值只占用计数器字的0~9位。&下面是图3-44中左边的电路对应的语句表:&&&A&&&&&&&&I0.0&&&&&&&&&//在I0.0的上升沿CU&&&&&&&&&C10&&&&&&&&&//加计数器C10的当前值加1BLD&&&&&101A&&&&&&&&&I0.2&&&&&&&&&//在I0.2的上升沿L&&&&&&&&&C#6&&&&&&&&&&&&&//计数器的预置值6被装入累加器的低字S&&&&&&&&&C10&&&&&&&&&//将预置值装入计数器C10A&&&&&&&&I0.3&&&&&&&&&//如果I0.3为1R&&&&&&&&&C10&&&&&&&&&//复位C10L&&&&&&&&&C10&&&&&&&&&//将C10的二进制计数当前值装入累加器1T&&&&&&&&&MW0&&&&&&&&//将累加器1的内容传送到MW0LC&&&&&&&&&C10&&&&&&&&&//将C10的BCD计数当前值装入累加器1T&&&&&&&&&MW8&&&&&&&&//将累加器1的内容传送到MW8A&&&&&&&&&C10&&&&&&&&&//如果C10的当前值非0=&&&&&&&&&Q&5.0&&&&&&&&&//Q&5.0为1状态设置计数值线圈SC(Set&Counter&Value)用来设置计数值,在RLO的上升沿预置值被送入指定的计数器。CU的线圈为加计数器线圈。在I0.0的上升沿,如果计数值小于999,计数值加1。复位输入I0.3为1时,计数器被复位,计数值被清0。计数值大于0时计数器位(即输出Q)为1;计数值为0时,计数器位亦为0。在减计数输入信号CD的上升沿,如果计数值大于0,计数值减1。&&&&&&&&3.5.1&装入指令与传送指令1.装入指令与传送指令装入(L,Load)指令将源操作数装入累加器1,而累加器1原有的数据移入累加器2。装入指令可以对字节(8位)、字(16位)、双字(32位)数据迸行操作。传送(T,Transfer)指令将累加器1中的内容写入目的存储区中,累加器1的内容不变。2.立即寻址的装入与传送指令立即寻址的操作数直接在指令中,下面是使用立即寻址的例子。L&&&-35&&&&&&&&&&&&&&&&//将16位十进制常数-35装入累加器1的低字ACCU1-LL&&&&L#5&&&&&&&&&&&&&&&&&&&&//将32位常数5装入累加器1&&&&L&&&&B#16#5A&&&&&&&&&&&&&&&&//将8位十六进制常数装入累加器1最低字节ACCU1-LLL&&&&W#16#3E4F&&&&&&&&&&&&//将16位十六进制常数装入累加器1的低字ACCU1-LL&&&&DW#16#567A3DC8&&&&//将32位十六进制常数装入累加器1L&&&&2#10_0010&&&&//将16位二进制常数装入累加器1的低字ACCU1-LL&&&&25.38&&&&&&&&&&&&&&&&//将32位浮点数常数(25.38)装入累加器1L&&&&‘ABCD’&&&&&&&&&&&&&&&&//将4个字符装入累加器1&&&&&&&&L&&&&TOD#12:30:3.0&&&&&&&&//将32位实时时间常数装入累加器1L&&&D#&&&&&&&&&&&&//将16位日期常数装入累加器1的低字ACCU1-LL&&&&C#50&&&&&&&&&&&&&&&&//将16位计数器常数装入累加器1的低字ACCU1-LL&&&&T#1M20S&&&&&&&&&&&&//将16位定时器常数装入累加器1的低字ACCU1-LL&&&&S5T#2S&&&&&&&&&&&&&&&&//将16位定时器常数装入累加器1的低字ACCU1-LL&&&&P#M5.6&&&&&&&&&&&&&&&&//将指向M5.6的指针装入累加器1AW&&&&W#16#3A12&&&&//常数与累加器1的低字相“与”,运算结果在累加器1的低字中L&&&&&&B#(100,12,50,8)&&&&&&&&//装入4字节无符号常数3.直接寻址的装入与传送指令直接寻址在指令中直接给出存储器或寄存器的区域、长度和位置,例如用MW200指定位存储区中的字,地址为200;下面是直接寻址的程序实例:A&&&&&&&&I0.0&&&&&&&&&&&&&&&&//输入位I0.0的“与”(AND)操作&&&&&L&&&&&&&&&MB10&&&&&&&&&&&&&//将8位存储器字节装入累加器1最低的字节ACCU1-LLL&&&&&&&&&DIW15&&&&&&&&&&&&&//将16位背景数据字装入累加器1的低字ACCU1-LL&&&&&&&&LD22&&&&&&&&&&&&&//将32位局域数据双字装入累加器1T&&&&&&&&&QB10&&&&&&&&&&&&&//将ACCU1-LL中的数据传送到过程映像输出字节QB10T&&&&&&&&&MW14&&&&&&&&&&&&&//将ACCU1-L中的数据传送到存储器字MW14T&&&&&&&&&DBD2&&&&&&&&&&&&&//将ACCU1中的数据传送到数据双字DBD23.存储器间接寻址在存储器间接寻址指令中,给出一个作地址指针的存储器,该存储器的内容是操作数所在存储单元的地址。在循环程序中经常使用存储器间接寻址。地址指针可以是字或双字,定时器(T)、计数器(C)、数据块(DB)、功能块(FB)和功能(FC)的编号范围小于65&535,使用字指针就够了。其它地址则要使用双字指针,如果要用双字格式的指针访问一个字、宇节或双字存储器,必须保证指针的位编号为0,例如P#Q20.0。L&&&&QB[DBD&10]&&&&&&&//将输出字节装入累加器1,输出字节的地址指针在数据双字DBD10中&&&&//如果DBD10的值为2#00&00&,装入的是QB4A&&&&M[LD&4]&&&&&&&&&&&//对存储器位作“与”运算,地址指针在数据双字LD4中//如果LD4的值为2#00&00&,则是对M4.3进行操作&4.寄存器间接寻址地址寄存器AR1和AR2,的内容加上偏移量形成地址指针,指向数值所在的存储单元。其中第0~2位(xxx)为被寻址地址中位的编号(0~7),第3~18位为被寻址地址的字节的编号(0~65535)。第24~26位(rrr)为被寻址地址的区域标识号,第31位x&=&0为区域内的间接寻址,第31位x&=&1为区域间的间接寻址。第一种地址指针格式存储区的类型在指令中给出,例如L&&DBB[AR1,&P#6.0]。在某一存储区内寻址。第24~26位(rrr)应为0。第二种地址指针格式的第24~26位还包含存储区域标识符rrr,区域间寄存器间接寻址。如果要用寄存器指针访问一个字节、字或双字,必须保证指针中的位地址编号为0。指针常数#P5.0对应的二进制数为2#00&00&。下面是区内间接寻址的例子:L&&&&&&&&P#5.0&&&&&&&&&&&&//将间接寻址的指针装入累加器1LAR1&&&&&&&&&&&&&&&&&&&&//将累加器1中的内容送到地址寄存器1A&&&&&&&&M[AR1,&P#2.3]&&&&//AR1中的P#5.0加偏移量P#2.3,&实际上是对M7.3进行操作=&&&&&&&&Q[AR1,&P#0.2]&&&&//逻辑运算的结果送Q5.2L&&&&&&&&DBW[AR1,&P#18.0]&&&&//将DBW23装入累加器1下面是区域间间接寻址的例子:L&&&&&&&&P#M6.0&&&&&&&&&&&&//将存储器位M6.0的双字指针装入累加器1LAR1&&&&&&&&&&&&&&&&&&&&//将累加器1中的内容送到地址寄存器1T&&&&&&&&W[AR1,&P#50.0]&&&&//将累加器1的内容传送到存储器字MW56&P#M6.0对应的二进制数为2#00&00&。因为地址指针P#M6.0中已经包含有区域信息,使用间接寻址的指令T&&W[AR1,&P#50]中没有必要再用地址标识符M。表3-6&&寄存器间接寻址的区域标识位区域标识符&&&&存储区&&&&位26~24&P&&&&外设输入输出&&&&000I&&&&输入过程映像&&&&001Q&&&&输出过程映像&&&&010M&&&&位存储区&&&&011DBX&&&&共享数据块&&&&100DIX&&&&背景数据块&&&&101L&&&&块的局域数据&&&&1115.装入时间值或计数值L&&&&&&&&&&T5&&&&&&&&&&&&//将定时器T5中的二进制时间值装入累加器1的低字中LC&&&&&&&&T5&&&&&&&&&&&&&//将定时器T5中的BCD码格式的时间值装入累加器1低字中L&&&&&&&&&&C3&&&&&&&&&&&&//将计数器C3中的二进制计数值装入累加器1的低字中LC&&&&&&&&C16&&&&&&&&&//将计数器C16中的BCD码格式的值装入累加器1的低字中6.地址寄存器的装入与传送指令可以不经过累加器1,与地址寄存器AR1和AR2交换数据。下面是应用实例:LAR1&&&&&DBD20&&&&&&&&&//将数据双字DBD20中的指针装入AR1LAR2&&&&&LD180&&&&&&&&&//将局域数据双字LD180中的指针装入AR2LAR1&&&&&&P#M10.2&&&&&&&&//将带存储区标识符的32位指针常数装入AR1LAR2&&&&&&P#24.0&&&&&&&&//将不带存储区标识符32位指针常数装入AR2TAR1&&&&&DBD20&&&&&&&&&//AR1中的内容传送到数据双字DBD20TAR2&&&&&MD24&&&&&&&&&//AR2中的内容传送到存储器双字MD24梯形图中的传送指令:&A&&&&&&&&&I1.0&&&&&&JNB&&&&&&&&&&_001&&&&&&&&//如果I1.0&=&0,则跳转到标号_001处&&&&&&L&&&&&&&&&MW2&&&&&&&&//MW2的值装入累加器1的低字&&&&&&T&&&&&&&&&MW4&&&&&&&&//累加器1低字的内容传送到MW4&&&&&&&&&&&&&&SET&&&&&&&&&&&&&&&&&&&//将RLO置为1&&&&&&SAVE&&&&&&&&&&&&&&&&&&//将RLO保存到BR位&&&&&&CLR&&&&&&&&&&&&&&&&&&&//将RLO置为0_001:&&A&&&&&&&&&BR&&&&&&&&&&&&&&&&&&……如果功能被正确执行,BR位为&1,ENO也为&1。3.5.2&比较指令比较指令用于比较累加器1与累加器2中的数据大小,被比较的两个数的数据类型应该相同。如果比较的条件满足,则RLO为1,否则为0。状态字中的CC0和CC1位用来表示两个数的大于、小于和等于关系(见表3-7)。表3-7&&指令执行后的CC1和CC0CC1&&&&CC0&&&&比较指令&&&&移位和循环移位指令&&&&字逻辑指令0&&&&0&&&&累加器2=累加器1&&&&移出位为0&&&&结果为00&&&&1&&&&累加器2&累加器1&&&&-&&&&-1&&&&0&&&&累加器2&累加器1&&&&-&&&&结果不为01&&&&1&&&&非法的浮点数&&&&移出位为1&&&&-表3-8&&比较指令语句表指令&&&&梯形图中的符号&&&&说明&I?&D?&R&&&&CMP&?&ICMP&?&DCMP&?&R&&&&比较累加器2和累加器1低字中的整数,如果条件满足,RLO=1比较累加器2和累加器1中的双整数,如果条件满足,RLO=1比较累加器2和累加器1中的浮点数,如果条件满足,RLO=1?可以是==,&&&,&&,&&,&&=,&&=。下面是比较两个浮点数的例子:L&&&&&MD4&&&&&&&&&&&&//MD4中的浮点数装入累加器1L&&&&&2.345E+02&&&&&&&&//浮点数常数装入累加器1,MD4装入累加器2&R&&&&&&&&&&&&&&&&&&&//比较累加器1和累加器2的值=&&&&&Q4.2&&&&&&&&&&&&//如果MD4&&&2.345E+02,则Q4.2为1梯形图中的方框比较指令可以比较整数(I)、双整数(D)和浮点数(R)。方框比较指令在梯形图中相当于一个常开触点,可以与其他触点串连和并联。&表3-9&&数据转换指令语句表&&&&梯形图&&&&说明BTIITBBTDDTBDTRITDRNDRND+RND-TRUNC&&&&BCD_II_BCDBCD_DIDI_BCDDI_RI_DIROUNDCEILFLOORTRUNC&&&&将累加器1中的3位BCD码转换成整数将累加器1中的整数转换成3位BCD码将累加器1中的7位BCD码转换成双整数将累加器1中的双整数转换成7位BCD码将累加器1中的双整数转换成浮点数将累加器1中的整数转换成双整数将浮点数转换为四舍五入的双整数将浮点数转换为大于等于它的最小双整数将浮点数转换为小于等于它的最大双整数将浮点数转换为截位取整的双整数CAWCAD&&&&--&&&&交换累加器1低字中两个字节的位置交换累加器1中4个字节的顺序&下面是双整数转换为BCD码的例子:A&&&&&I0.2&&&&&&&&&&&&&//如果I0.2为1L&&&&&MD10&&&&&&&&&&&&&//将MD10中的双整数装入累加器1&DTB&&&&&&&&&&&&&&&&//将累加器1中的数据转换为BCD码,结果仍在累加器1中JO&&&&OVER&&&&&&&&&&&&&//运算结果超出允许范围(OV=1)则跳转到标号OVER处T&&&&&MD20&&&&&&&&&&&&&//将转换结果传送到MD20A&&&&M4.0R&&&&M4.0&&&&&&&&&&&&&//复位溢出标志JU&&&&NEXT&&&&&&&&&&&&//无条件跳转到标号NEXT处&OVER:&&&&AN&&&&M4.0&&&&&&&&&&&&&&&&&S&&&&M4.0&&&&&&&&&&&&&//置位溢出标志NEXT:&&&&……【例3-5】&将101英寸转换为以厘米为单位的整数,送到MW0中。&&L&&&&&&&&101&&&&&&&&&&&&//将16位常数101(65H)装入累加器1ITD&&&&&&&&&&&&&&&&&//转换为32位双整数DTR&&&&&&&&&&&&&&&&//转换为浮点数101.0L&&&&&&&&2.54&&&&&&&&//浮点数常数2.54装入累加器1,累加器1的内容装入累加器2&&&&&*R&&&&&&&&&&&&&&&&&&&&//101.0乘以2.54,转换为256.54厘米RND&&&&&&&&&&&&&&&&&//四舍五入转换为整数257(101H)T&&&&&&&&&MW30&&&&7.取反与求补指令表3-12&&取反与求补指令语句表指令&&&&梯形图指令&&&&说明INVIINVDNEGINEGDNEGR&&&&INV_IINV_DINEG_INEG_DINEG_R&&&&求累加器1低字中的16位整数的反码求累加器1中双整数的反码求累加器1低字中的16位整数的补码求累加器1中双整数的补码将累加器1中的浮点数的符号位取反&L&&&&&&&&MD20&&&&&&&&//将32位双整数装入累加器1NEGD&&&&&&&&&&&&&&&&//求补T&&&&&&&&MD30&&&&&&&&&//运算结果传送到MD30表3-13&取反与求补内容&&&&累加器1的低字变换前的数&&&&11&1000取反的结果&&&&00&0111求补的结果&&&&00&10003.6.1&&整数数学运算指令&L&&&&&IW10&&&&&&&&&//IW10的内容装入累加器1的低字L&&&&&MW14&&&&&&&&&//累加器1的内容装入累加器2,MW14的值装入累加器1的低字/I&&&&&&&&&&&&&&//累加器2低字的值除以累加器1低字的值,结果在累加器1的低字T&&&&&DB1.DBW2&&&&//累加器1低字中的运算结果传送到数据块DB1的DBW2中表3-16&&整数数学运算指令语句表&&&&梯形图&&&&描&&&述+I&-I&*I&/&I&++D&-D&*D&/&D&MOD&&&&ADD_ISUB_IMUL_IDIV_I——ADD_DISUB_DIMUL_DIDIV_DIMOD_DI&&&&将累加器1,2低字中的整数相加,运算结果在累加器1的低字中累加器2中的整数减去累加器1中的整数,运算结果在累加器1的低字将累加器1,2低字中的整数相乘,32位双整数运算结果在累加器1中累加器2的整数除以累加器1的整数,商在累加器1的低字,余数在累加器1的高字累加器的内容与16位或32位常数相加,运算结果在累加器1中将累加器1,2中的双整数相加,双整数运算结果在累加器1中累加器2中的双整数减去累加器1中的双整数运算结果在累加器1中将累加器1,2中的双整数相乘,32位双整数运算结果在累加器1中累加器2中的双整数除以累加器1中的双整数,32位商在累加器1中,&累加器2中的双整数除以累加器1中的双整数,32位余数在累加器1中3.6.2&&浮点数数学运算指令表3-17&&浮点数数学指令语句表&&&&梯形图&&&&描述+R-R*R/RABSSQRSQRTEXPLNSINCOSTANASINACOSATAN&&&&&ADD_RSUB_RMUL_RDIV_RABSSQRSQRTEXPLNSINCOSTANASINACOSATAN&&&&将累加器1,2中的浮点数相加,浮点数运算结果在累加器1中累加器2中的浮点数减去累加器1中的浮点数,运算结果在累加器1中将累加器1,2中的浮点数相乘,浮点数乘积在累加器1中累加器2中的浮点数除以累加器1中的浮点数,商在累加器1,余数丢掉取累加器1中的浮点数的绝对值求浮点数的平方求浮点数的平方根求浮点数的自然指数求浮点数的自然对数求浮点数的正弦函数求浮点数的余弦函数求浮点数的正切函数求浮点数的反正弦函数求浮点数的反余弦函数求浮点数的反正切函数OPN&&&&DB17&&&&&&&&&//打开数据块DB17L&&&&&&&&&DBD0&//数据块DB17的DBD0中的浮点数装入累加器1SQR//求累加器1中的浮点数的平方,运算结果在累加器1中AN&&&&&&&&OV&&&&&&&&&&&&//如果运算时没有出错JC&&&&&&&&OK&&&&&&&&&&&&//跳转到标号OK处BEU&&&&&&&&&&&&&&&&&&&&//如果运算时出错,功能块无条件结束OK:&&&&T&&&&&&&&&DBD4&&&&&&&&//累加器1中的运算结果传送到数据块DB17的DBD4中求以10为底的对数时,应将自然对数值除以2.的自然对数值)。例如lg100=ln100/2...【例3-6】用浮点数对数指令和指数指令求5的立方。计算公式为:&L&&&&&&&&&L#5DTRLNL&&&&&&&&3.0*REXPRNDT&&&&&&&&MW40浮点数三角函数指令的输入值为弧度,角度值乘以p/180,可转换为弧度值。&【例3-7】的量程为0~10MPa,输出信号为4~20mA,S7-300的模拟量输入模块的量程为4~20mA,转换后的数字量为0~27&648,设转换后的数字为N,试求以kPa为单位的压力值。&&&&解:0~10MPa(0~10&000kPa)对应于转换后的数字0~27&648,转换公式为P&=(10&000&&&N)/&27&648&&(kPa)&&&&&&&&&&&&&&&&&&&&&(3-1)值得注意的是在运算时一定要先乘后除,否则会损失原始数据的精度。假设A/D转换后的数据N在MD6中,以kPa为单位的运算结果在MW10中。图3-58是实现式(3-1)中的运算的梯形图程序。&&&图3-58&&算术运算指令语句表中“*I”指令的运算结果为32位整数,梯形图中MUL_I指令的运算结果为16位整数。A/D转换后的最大数字为27&648,所以要使用MUL_DI。双字除法指令DIV_DI的运算结果为双字,运算结果不会超过16位正整数的最大值(32&767)。3.6.3&&移位与循环移位指令表3-20&&移位指令(对累加器1中的数操作,结果在累加器1中)名称&&&&语句表&&&&梯形图&&&&描述有符号整数右移有符号双整数右移16位字左移16位字右移16位双字左移16位双字右移&&&&SSISSDSLWSRWSLDSRD&&&&SHR_ISHR_DISHL_WSHR_W&SHL_DWSHR_DW&&&&整数逐位右移,空出的位添上符号位双整数逐位右移,空出的位添上符号位字逐位左移,空出的位添0字逐位右移,空出的位添0双字逐位左移,空出的位添0双字逐位右移,空出的位添0双字循环左移双字循环右移双字+CC1循环左移双字+CC1循环右移&&&&RLDRRDRLDARRDA&&&&ROL_DWROR_DW-&-&&&&双字循环左移双字循环右移双字通过CC1(一共33位)循环左移双字通过CC1(一共33位)循环右移(1)用指令中的参数&number&来指定移位位数,16位移位指令为0~15,32位移位指令为0~32。如果&number&等于0,移位指令被当作NOP(空操作)指令来处理。(2)指令没有参数&number&,移位位数放在累加器2的最低字节中(0~255)。如果移位位数等于0,移位指令被当作NOP(空操作)指令来处理。有符号字的移位位数&16时,移位后被移位的数的各位全部变成了符号位。L&&&&&&&&&MW4&&&&&&//将MW4的内容装入累加器1的低字SSI&&&&&&&&6&&&&&&&&&//累加器1低字中的有符号数右移6位,结果仍在累加器1的低字中T&&&&&&&&&MW8&&&&//累加器1低字中的运算结果传送到MW8中表3-21&&整数右移6位前后的数据内容&&&&累加器1的高字&&&&累加器1的低字移位前&&&&10&0100&&&&&11&1011右移6位后&&&&10&0100&&&&&11&0100L&&&&&&&&&+3&&&&&&&&//将+3装入累加器1&L&&&&&&&&MW20&&&&&&&&//将累加器1的内容装入累加器2,MW20的内容装入累加器1&SSI&&&&&&&&&&&&&&&&//累加器1低字中的有符号数右移3位&JP&&&&&&&&NEXT&&&&&&&&//如果最后移入CC1的位为1,跳转到标号NEXT处表3-23&&字右移6位移位前后的数据&内容&&&&累加器1的高字&&&&累加器1的低字移位前&&&&10&0100&&&&11&1011右移6位后&&&&10&0100&&&&11&0100表3-24&&双字循环左移4位前后累加器中的数据内容&&&&累加器1的高字&&&&累加器1的低字移位前&&&&10&0100&&&&&11&1011右移4位后&&&&00&0101&&&&&11&0101表3-25&&双字通过CC1循环左移1位前后累加器中的数据内容&&&&CC1&&&&累加器1的高字&&&&累加器1的低字移位前&&&&X&&&&10&0100&&&&&11&1011左移后&&&&0&&&&00&1000&&&&11&011X&图3-60&&有符号数右移指令3.6.4&&字逻辑运算指令表3-26&&字逻辑运算指令语句表&&&&梯形图&&&&描&&&述AWOWXOWADODXOD&&&&WAND_WWOR_WWXOR_WWAND_DWWOR_DWWXOR_DW&&&&字与字或字异或双字与双字或双字异或表3-27&&字逻辑运算的结果位&&&&15&&&&&&&&&&&&&&&&&0逻辑运算前累加器1的低字&&&&11&1011逻辑运算前累加器2的低字或常数&&&&11&0101“与”运算后累加器1的低字&&&&11&0001“或”运算后累加器1的低字&&&&11&1111“异或”运算后累加器1低字&&&&00&1110L&&&&&QW10&&&&&&&&&//QW10的内容装入累加器1的低字L&&&&&W#16#000F&&&&&//累加器1的内容装入累加器2,&W#16#000F装入累加器1的低字OW&&&&&&&&&&&&&&&&//累加器1低字与W#16#000F逐位相或,结果在累加器1的低字中T&&&&&QW10&&&&&&&&//累加器1低字中的运算结果传送到QW10中&MB9是MW8中的低字节,M9.1和M9.2对应于输入信号I0.1和I0.2。3.6.5&累加器指令表3-28&&累加器指令语句表&&&&描&&述TAKPUSHPOPENTLEAVEINCDEC+AR1+AR2BLDNOP&0NOP&1&&&&交换累加器1,2的内容入栈出栈进入ACCU堆栈离开ACCU堆栈累加器1最低字节加上8位常数累加器1最低字节减去8位常数AR1的内容加上地址偏移量AR2的内容加上地址偏移量程序显示指令(空指令)空操作指令空操作指令&【例3-9】用语句表程序实现浮点数运算(DBD0+DBD4)/(DBD8–DBD12)。L&&&&&DBD0&&&&&&&&&//DBD0中的浮点数装入累加器1&L&&&&&DBD4&&&&&&&&&//累加器1的内容装入累加器2,DBD4中的浮点数装入累加器1&+R&&&&&&&&&&&&&&&&//累加器1,2中的浮点数相加,结果保存在累加器1中L&&&&DBD8&&&&&&&&//累加器1的内容装入累加器2,DBD8中的浮点数装入累加器1ENT&&&&&&&&&&&&&&&&//累加器3的内容装入累加器4,累加器2的中间结果装入累加器3&&&&&L&&&&DBD12&&&&&&&&//累加器1的内容装入累加器2,DBD12中的浮点数装入累加器1–R&&&&&&&&&&&&&&&&//累加器2的内容减去累加器1的内容,结果保存在累加器1中LEAVE&&&&&&&&&&&&//累加器3的内容装入累加器2,累加器4的中间结果装入累加器3/R&&&&&&&&&&&&&&&&//累加器2的(DBD0+DBD4)除以累加器1的(DBD8–DBD12)T&&&&DBD16&&&&&&&&//累加器1中的运算结果传送到DBD163.加、减8位整数指令L&&&&&MB4&&&&&&&&&//MB4的内容装入累加器1的最低字节INC&1&&&&&&&&&&&&//累加器1最低字节的内容加1,结果存放在累加器1的最低字节T&&&&&MB4&&&&&&&&//运算结果传回MB44.地址寄存器指令+AR1&(Add&to&AR1)&指令将AR1的内容加上累加器1中低字的内容,或加上指令中的16位常数,结果在AR1中。地址寄存器中的存储区域标识符(第24~26位)保持不变。&3.7&&逻辑控制指令表3-29&&逻辑控制指令与状态位触点指令语句表中的逻辑控制指令&&&&梯形图中的状态位触点指令&&&&说明JUJLJCJCNJCBJNBJBIJNBIJOJOSJZJNJPJMJPZJMZJUOLOOP&&&&------BR-OVOS==0&&&0&&0&&0&=&0&=&0UO-&&&&无条件跳转多分支跳转RLO=1时跳转RLO=0时跳转RLO=1且BR=1时跳转RLO=0且BR=1时跳转BR=1时跳转BR=0时跳转OV=1时跳转OS=1时跳转运算结果为0时跳转运算结果非0时跳转运算结果为正时跳转运算结果为负时跳转运算结果大于等于0时跳转运算结果小于等于0时跳转指令出错时跳转循环指令只能在同一逻辑块内跳转。同一个跳转目的地址只能出现一次。跳转或循环指令的操作数为地址标号,标号由最多4个字符组成,第一个字符必须是字母,其余的可以是字母或数字。在梯形图中,目标标号必须是一个网络的开始。【例3-10】IW8与MW12的异或结果如果为0,将M4.0复位,非0则将M4.0置位。&&&&&&&&L&&&&&&&&&IW8&&&&&&&&&&&&&//IW8的内容装入累加器1的低字L&&&&&&&&&MW12&&&&&&&&&//累加器1的内容装入累加器2,MW12的内容装入累加器1&XOW&&&&&&&&&&&&&&&&//累加器1,2低字的内容逐位异或JN&&&&&&&&NOZE&&&&&&&&//如果累加器1的内容非0,则跳转到标号NOZE处R&&&&&&&&M4.0JU&&&&&&&&NEXTNOZE:&&&&AN&&&&&&&&M4.0&&&&&&&&S&&&&&&&&M4.0NEXT:&&&&NOP&&&&0&&&&&&&&&&3.7.3&&循环指令&&&&循环指令LOOP&&jump&label&用ACCU&1-L作循环计数器,每次执行LOOP指令时ACCU&1-L的值减1,若减1后ACCU&1-L非0,将跳转到&jump&label&指定的标号处。【例3-11】用循环指令求5!(5的阶乘)。L&&&&&&&&&L#1&&&&&&&&&//32位整数常数装入累加器1,置阶乘的初值T&&&&&&&&MD20&&&&//累加器1的内容传送到MD20,保存阶乘的初值L&&&&&&&&&5&&&&&&&&&&&&&//循环次数装入累加器的低字BACK:&&&&T&&&&&&&&MW10&&&&&&&&//累加器1低字的内容保存到循环计数器MW10&L&&&&&&&&MD20&&&&&&&&//取阶乘值&&&&*D&&&&&&&&&&&&&&&&&&&&//MD20与MW10的内容相乘T&&&&&&&&MD20&&&&&&&&//乘积送MD20L&&&&&&&&MW10&&&&&&&&//循环计数器内容装入累加器1LOOP&&&&BACK&&&&&&&&//累加器1低字的内容减1,减1后非0,跳到标号BACK&&&&&&&&……&&&&&&&&&&&&&&&&//循环结束后,恢复线性扫描3.8&&程序控制指令表3-30&&程序控制指令语句表指令&&&&梯形图指令&&&&描述BEBEUBECCALL&FCnCALL&SFCn&CALL&FBn1,DBn2CALL&SFBn1,DBn2CC&FCn或SFCnUC&FCn或SFCnRETMCRAMCRDMCR()MCR&&&&-------CALLCALLRETMCRAMCRDMCR&MCR&&&&&块结束块无条件结束块条件结束调用功能调用系统功能调用功能块调用系统功能块RLO=1时条件调用无条件调用条件返回起动主控继电器功能取消主控继电器功能打开主控继电器区关闭主控继电器区&&OPN&&&&&&&&DB10&&&&//打开数据块DB10作为共享数据块L&&&&&&&&DBW35&&&&//将打开的DB10中的数据字DBW35装入累加器1的低字T&&&&&&&&MW12&&&&//累加器1低字的内容装入MW12OPN&&&&DI20&&&&//打开作为背景数据块的数据块DB20&&&&L&&&&&&&&DIB35&&&&//&DB20.DIB35装入累加器1的最低字节T&&&&&&&&DBB27&&&&//累加器1最低字节传送到DB10.DBB27表3-31&&数据块指令指令&&&&描述OPNCDBL&DBLGL&DBNOL&DILGL&DINO&&&&打开数据块交换共享数据块和背景数据共享数据块的长度装入累加器1共享数据块的编号装入累加器1背景数据块的长度装入累加器1背景数据块的编号装入累加器1第四章&&STEP&7编程软件的使用方法4.1.1&&STEP&7概述STEP&7用于S7,M7,C7,WinAC的编程、监控和参数设置,基于STEP&7&V5.2版。STEP&7具有以下功能:硬件配置和参数设置、通信组态、编程、测试、启动和维护、文件建档、运行和诊断功能等。4.1.2&&STEP&7的硬件接口PC./MPI适配器+RS-232C通信电缆。计算机的通信卡CP&5611(PCI卡)、CP&5511或CP&5512(PCMCIA卡)将计算机连接到MPI或PROFIBUS网络。计算机的工业以太网通信卡CP&1512(PCMCIA卡)或CP&1612(PCI卡),通过工业以太网实现计算机与PLC的通信。&&&&STEP&7的授权在软盘中。STEP&7光盘上的程序AuthorsW用于显示、安装和取出授权。4.1.4&&STEP&7的编程功能1.编程语言3种基本的编程语言:梯形图(LAD)、功能块图(FBD)&和语句表(STL)。S7-SCL&(结构化控制语言)&,S7-GRAPH(顺序功能图语言),S7&HiGraph和CFC。2.符号表编辑器3.增强的测试和服务功能设置断点、强制输入和输出、多CPU运行(仅限于S7-400),重新布线、显示交叉参考表、状态功能、直接下载和调试块、同时监测几个块的状态等。程序中的特殊点可以通过输入符号名或地址快速查找。4.STEP&7的帮助功能按F1键便可以得到与它们有关的在线帮助。菜单命令“Help→contents”进入帮助窗口。4.1.5&&STEP&7的硬件组态与诊断功能1.硬件组态(1)系统组态:选择硬件机架,模块分配给机架中希望的插槽。(2)CPU的参数设置。(3)模块的参数设置。可以防止输入错误的数据。2.通信组态(1)网络连接的组态和显示;(2)设置用MPI&或PROFIBUS-DP连接的设备之间的周期性数据传送的参数。(3)设置用MPI、PROFIBUS或工业以太网实现的事件驱动的数据传输,用通信块编程。3.系统诊断(1)快速浏览CPU的数据和用户程序在运行中的故障原因。(2)用图形方式显示硬件配置、模块故障;显示诊断缓冲区的信息等。4.2&&硬件组态与参数设置4.2.1&项目的创建与项目的结构&&&&插入新的对象的方法。4.2.2&硬件组态&图4-2&&S7-300的硬件组态窗口4.2.3&&CPU模块的参数设置&图4-3&&CPU属性设置对话框表4-1&&时钟存储器各位对应的时钟脉冲周期与频率位&&&&7&&&&6&&&&5&&&&4&&&&3&&&&2&&&&1&&&&0周期(s)&&&&2&&&&1.6&&&&1&&&&0.8&&&&0.5&&&&0.4&&&&0.2&&&&0.1频率(Hz)&&&&0.5&&&&0.625&&&&1&&&&1.25&&&&2&&&&2.5&&&&5&&&&104.2.4&&数字量输入模块的参数设置在CPU处于STOP模式下进行。设置完后下载到CPU中。当CPU从STOP模式转换为RUN模式时,CPU将参数传送到每个模块。&图4-4&&数字量输入模块的参数设置4.2.5&&数字量输出模块的参数设置&图4-5&&数字量输出模块的参数设置4.2.6&模拟量输入模块的参数设置1.模块诊断与中断的设置8通道12位模拟量输入模块(订货号为6ES7&331-7KF02-0AB0)的参数设置。&图4-6&&模拟量输入模块的参数设置2.模块测量范围的选择“4DMU”是4线式传感器电流测量,“R-4L”是4线式热电阻,“TC-I”是热电偶,“E”表示测量种类为电压。未使用某一组的通道应选择测量种类中的“Deactivated”(禁止使用)。&&&&3.模块测量精度与转换时间的设置&&&&SM&331采用积分式A/D转换器,积分时间直接影响到A/D转换时间、转换精度和干扰抑制频率。为了抑制工频频率,一般选用20ms的积分时间。表4-2&&6ES7&331-7KF02模拟量输入模块的参数关系积分时间(ms)&&&&2.5&&&&&16.7&&&&&20&&&&&100基本转换时间(ms,包括积分时间)&&&&3&&&&&17&&&&&22&&&&&102附加测量电阻转换时间(ms)&&&&1&&&&1&&&&1&&&&1附加开路监控转换时间(ms)&&&&10&&&&10&&&&10&&&&10附加测量电阻和开路监控转换时间(ms)&&&&16&&&&16&&&&16&&&&16精度(位,包括符号位)&&&&9&&&&12&&&&12&&&&14干扰抑制频率(Hz)&&&&400&&&&60&&&&50&&&&&10模块的基本响应时间(ms,所有通道使能)&&&&24&&&&&136&&&&&176&&&&&8164.设置模拟值的平滑等级在平滑参数的四个等级(无,低,平均,高)中进行选择。4.2.7&模拟量输出模块的参数设置CPU进入STOP时的响应:不输出电流电压(0CV)、保持最后的输出值(KLV)和采用替代值(SV)。4.3.1&&符号表共享符号(全局符号)在符号表中定义,可供程序中所有的块使用。在程序编辑器中用&“View→Display&with→Symbolic&Representation”选择显示方式。2.生成与编辑符号表CPU将自动地为程序中的全局符号加双引号,在局部变量的前面自动加“#”号。生成符号表和块的局域变量表时不用为变量添加引号和#号。&图4-7&&符号表数据块中的地址(DBD,DBW,DBB和DBX)不能在符号表中定义。应在数据块的声明表中定义。用菜单命令“View→Columns&R,&O,&M,&C,&CC”可以选择是否显示表中的“R,&O,&M,&C,&CC”列,它们分别表示监视属性、在WinCC里是否被控制和监视、信息属性、通信属性和触点控制。可以用菜单命令“View→Sort”选择符号表中变量的排序方法。3.共享符号与局域符号,后者不能用汉字。4.过滤器(Filter)在符号表中执行菜单命令“View→Filter”,“I*”表示显示所有的输入,“I*.*”表示所有的输入位,“I2.*”表示IB2中的位等。4.3.2&&逻辑块逻辑块包括组织块OB、功能块FB和功能FC。1.程序的输入方式:增量输入方式或源代码方式(或称文本方式、自由编辑方式)。2.生成逻辑块&图4-8&&梯形图编辑器6.网络执行菜单命令“Insert→Network”,或点击工具条中相应的图标,在当前网络的下面生成一个新的网络。菜单命令“View→Display→Comments”用来激活或取消块注释和网络注释。可以用剪贴板在块内部和块之间复制和粘贴网络,可用Ctrl键。7.打开和编辑块的属性菜单命令“File→Properties”来查看和编辑块属性。8.程序编辑器的设置进入程序编辑器后用菜单命令“Option→Customize”打开对话框,可以进行下列设置:(1)在“General”标签页的“Font”设置编辑器使用的字体和字符的大小。(2)在“STL”和“LAD/FDB”标签页中选择这些程序编辑器的显示特性。(3)在“Block”(块)标签页中,可以选择生成功能块时是否同时生成背景数据块、功能块是否有多重背景功能。(4)在“View”选项卡中的“View&after&Open&Block”区,选择在块打开时显示的方式。9.显示方式的设置执行View菜单中命令,放大、缩小梯形图或功能块图的显示比例。菜单命令“View→Display→Symbolic&Representation”,切换绝对地址和符号地址方式。菜单命令“View→Display→Symbol&information”用来打开或关闭符号信息。&图4-9&&符号信息4.4&&S7-PLCSIM仿真软件在程序调试中的应用4.4.1&&S7-PLCSIM的主要功能在计算机上对S7-300/400&PLC的用户程序进行离线仿真与调试。模拟PLC的输入/输出存储器区,来控制程序的运行,观察有关输出变量的状态。在运行仿真PLC时可以使用变量表和程序状态等方法来监视和修改变量。可以对大部分组织块(OB)、系统功能块(SFB)和系统功能(SFC)仿真。4.4.2&&使用S7-PLCSIM仿真软件调试程序的步骤(1)在STEP&7编程软件中生成项目,编写用户程序。(2)打开S7-PLCSIM窗口,自动建立了STEP&7与仿真CPU的连接。仿真PLC的电源处于接通状态,CPU处于STOP模式,扫描方式为连续扫描。(3)在管理器中打开要仿真的项目,选中“Blocks”对象,将所有的块下载到仿真PLC。(4)生成视图对象。(5)用视图对象来模拟实际PLC的输入/输出信号,检查下载的用户程序是否正确。4.4.3&&应用举例电动机串电阻降压起动。速度监视。&&图4-11&&S7-PLCSIM仿真窗口4.4.4&&视图对象与仿真软件的设置与存档1.CPU视图对象2.其他视图对象通用变量(Generic&Variable)视图对象用于访问仿真PLC所有的存储区(包括数据块)。垂直位(Vertical&Bits)视图对象可以用绝对地址或符号地址来监视和修改I,Q,M等存储区。累加器与状态字视图对象用来监视CPU中的累加器、状态字和地址寄存器AR1和AR2。块寄存器视图对象用来监视数据块地址寄存器的内容,当前和上一次打开的逻辑块的编号,以及块中的步地址计数器SAC的值。嵌套堆栈(Nesting&Stacks)视图对象用来监视嵌套堆栈和MCR(主控继电器)堆栈。定时器视图对象标有“T=0”的按钮用来复位指定的定时器。3.设置扫描方式用“Execute”菜单中的命令选择单次扫描或连续扫描。4.设置MPI地址菜单命令“PLC→MPI&Address…”设置仿真PLC在指定的网络中的节点地址。5.LAY文件和PLC文件LAY文件用于保存仿真时各视图对象的信息;PLC文件用于保存上次仿真运行时设置的数据和动作等。退出仿真软件时将会询问是否保存LAY文件或PLC文件。一般选择不保存。4.5&&STEP&7与PLC的在线连接与在线操作4.5.1&装载存储器与工作存储器&系统数据(System&Data)包括硬件组态、网络组态和连接表,也应下载到CPU。下载的用户程序保存在装载存储器的快闪存储器(FEPROM)中。CPU电源掉电又重新恢复时,FEPROM中的内容被重新复制到CPU存储器的RAM区。4.5.2&在线连接的建立与在线操作1.建立在线连接通过硬件接口连接计算机和PLC必须,然后通过在线的项目窗口访问PLC。管理器中执行菜单命令“View→Online”、“View→Offline”进入离线状态。在线窗口显示的是PLC中的内容,离线窗口显示的是计算机中的内容。如果PLC与STEP&7中的程序和组态数据是一致的,在线窗口显示的是PLC与STEP&7中的数据的组合。2.处理模式与测试模式在设置CPU属性的对话框中的“Protection”(保护)标签页选择处理(Process)模式或测试(Test)模式。3.在线操作进入在线状态后,执行菜单命令“PLC&→Diagnostics/Settings”中不同的子命令。进入在线状态后,“PLC”主菜单中的命令功能。设置了口令后,执行在线功能时,会显示出“Enter&Password”对话框。若输入的口令正确,就可以访问该模块。用菜单命令“PLC→Access&Rights→&Setup”输入口令。4.5.3&下载与上载1.下载的准备工作计算机与CPU之间必须建立起连接,要下载的程序已编译好;在RUN-P模式一次只能下载一个块,建议在STOP模式下载。在保存块或下载块时,STEP&7首先进行语法检查,应改正检查出来的错误。下载前应将CPU中的用户存储器复位。可以用模式选择开关复位,CPU进入STOP模式,再用菜单命令“PLC→Clear/Reset”复位存储器。2.下载的方法(1)在离线模式下载在管理器的块工作区选择块,可用Ctrl键和Shift键选择多个块,用菜单命令“PLC→Download”将被选择的块下载到CPU。在管理器左边的目录窗口中选择Blocks对象,下载所有的块和系统数据。对块编程或组态硬件和网络时,在当时主窗口,用菜单命令“PLC→Download”下载当前正在编辑的对象。&(4)&上载程序可以用“PLC→Upload”命令从CPU的RAM装载存储器中,把块的当前内容上载到计算机打开的项目中。4.6&&用变量表调试程序4.6.1&系统调试的基本步骤&&&首先进行硬件调试,可以用变量表来测试硬件,通过观察CPU模块上的故障指示灯,或使用4.8节介绍的故障诊断工具来诊断故障。下载程序之前应将CPU的存储器复位,将CPU切换到STOP模式,下载用户程序时应同时下载硬件组态数据。&可以在OB1中逐一调用各程序块,一步一步地调试程序。最先调试起动组织块OB100,然后调试FB和FC。应先调试嵌套调用最深的块,例如首先调试图4-13中的FB1。调试时可以在完整的OB1的中间临时插入BEU(块无条件结束)指令,只执行BUE指令之前的部分,调试好后将它删除掉。最后调试不影响OB1的循环执行的中断处理程序,或者在调试OB1时调试它们。4.6.2&变量表的基本功能变量表可以在一个画面中同时监视、修改和强制用户感兴趣的全部变量。一个项目可以生成多个变量表。变量表的功能:监视(Monitor)变量、修改(Modify)变量、对外设输出赋值、强制变量、定义变量被监视或赋予新值的触发点和触发条件。4.6.3&&变量表的生成1.生成变量表的几种方法(1)在管理器中用生成新的变量表。(3)在变量表编辑器中,可以用主菜单“Table”生成一个新的变量表。2.在变量表中输入变量可以从符号表中拷贝地址,将它粘贴到变量表。IW2用二进制数(BIN)可以同时显示和分别修改&I&2.0~I&3.7这十六点数字量输入变量。&图4-14&&变量表4.6.4&&变量表的使用1.建立与CPU的连接2.定义变量表的触发方式&图4-15&&定义变量表的触发方式用菜单命令“Variable→Trigger”打开图4-15中的对话框选择触发方式。3.监视变量用菜单命令“Variable→Update&Monitor&Values”对所选变量的数值作一次立即刷新。4.修改变量在STOP模式修改变量时,各变量的状态不会互相影响,并且有保持功能。在RUN模式修改变量时,各变量同时又受到用户程序的控制。5.强制变量强制变量操作给用户程序中的变量赋一个固定的值,不会因为用户程序的执行而改变。&图4-16&&强制数值窗口强制作业只能用菜单命令“Variable→Stop&Forcing”来删除或终止。4.7&&用程序状态功能调试程序4.7.1&&程序状态功能的起动与显示1.起动程序状态进入程序状态的条件:经过编译的程序下载到CPU;打开逻辑块,用菜单命令“Debug→Monitor”进入在线监控状态;将CPU切换到RUN或RUN-P模式。2.语句表程序状态的显示&图4-17&&用程序状态监视语句表程序从光标选择的网络开始监视程序状态。右边窗口显示每条指令执行后的逻辑运算结果(RLO)和状态位STA(Status)、累加器1(STANDARD)、累加器2(ACCU&2)和状态字(STATUS…)。用菜单命令“Options→Customize”打开的对话框分STL标签页选择需要监视的内容,用LAD/FBD标签页可以设置梯形图(LAD)和功能块图(SFB)程序状态的显示方式。3.梯形图程序状态的显示LAD和FBD中用绿色连续线来表示状态满足,即有“能流”流过,见图4-18左边较粗较浅的线;用兰色点状线细表示状态不满足,没有能流流过;用黑色连续线表示状态未知。&图4-18&&梯形图程序状态的显示梯形图中加粗的字体显示的参数值是当前值,细体字显示的参数值来自以前的循环。4.使用程序状态功能监视数据块4.7.2&&单步与断点功能的使用进入RUN或RUN-P模式后将停留在第一个断点处。单步模式一次只执行一条指令。程序编辑器的“Debug(调试)”菜单中的命令用来设置、激活或删除断点。执行菜单命令“View>Breakpoint&Bar”后,在工具条中将出现一组与断点有关的图标。&&&&1.设置断点与进入单步模式的条件(1)只能在语句表中使用单步和断点功能。(2)&执行菜单命令“Options&→&Customize”,在对话框中选择STL标签页,激活“Activate&new&breakpoints&immediately(立即激活新断点)”选项。(3)必须用菜单命令“Debug>Operation”使CPU工作在测试(Test)模式。(4)在SIMATIC管理器中进入在线模式,在线打开被调试的块。(5)设置断点时不能起动程序状态(Monitor)功能。(6)STL程序中有断点的行、调用块的参数所在的行、空的行或注释行不能设置断点。2.设置断点与单步操作在菜单命令“Debug&→Breakpoints&Active”前有一个“√”(默认的状态),表示断点的小圆是实心的。执行该菜单命令后“√”消失,表示断点的小圆变为空心的。要使断点起作用,应执行该命令来激活断点。&&图4-19&&断点与断点处CPU寄存器和状态字的内容将CPU切换到RUN或RUN-P模式,将在第一个表示断点的紫色圆球内出现一个向右的黄色的箭头(见图4-19),表示程序的执行在该点中断,同时小窗口中出现断点处的状态字等。执行菜单命令“Debug→Execute&Next&Statement”,黄色箭头移动到下一条语句,表示用单步功能执行下一条语句。执行菜单命令“Debug→&Execute&Call(执行调用)”将进入调用的块。块结束时将返回块调用语句的下一条语句。为使程序继续运行至下一个断点,执行菜单命令“Debug&→&Resume(继续)”。菜单命令“Debug→Delete&Breakpoint”删除一个断点,菜单命令“Debug→Delete&All&Breakpoint”删除所有的断点。执行菜单命令“Show&Next&Breakpoint”,光标跳到下一个断点。4.8&故障诊断4.8.1&&故障诊断的基本方法&&&&&图4-20&&诊断符号在管理器中用&“View→Online”打开在线窗口。查看是否有CPU显示诊断符号。4.8.2&&模块信息在故障诊断中的应用1.打开模块信息窗口建立在线连接后,在管理器中选择要检查的站,执行菜单命令“PLC→Diagnostics/&Settings→Module&Information”,显示该站中CPU模块的信息。诊断缓冲区(Diagnostic&Buffer)标签页中,给出了CPU中发生的事件一览表。&图4-21&&CPU模块的在线模块信息窗口最上面的事件是最近发生的事件。因编程错误造成CPU进入STOP模式,选择该事件,并点击“Open&Block”按钮,将在程序编辑器中打开与错误有关的块,显示出错的程序段。4.8.3&&用快速视窗和诊断视窗诊断故障1.用快速视窗诊断故障管理器中选择要检查的站,用命令“PLC→Diagnostics/Settings→Hardware&Diagnose”打开CPU的硬件诊断快速视窗(Quick&View),显示该站中的故障模块。用命令“Option→Customize”,在打开的对话框的“View”标签页中,应激活“诊断时显示快速视窗”。&图4-22&&快速视窗2.打开诊断视窗诊断视窗实际上就是在线的硬件组态窗口。在快速视窗中点击“Open&Station&Online”(在线打开站)按键,打开硬件组态的在线诊断视窗。在管理器中与PLC建立在线连接。打开一个站的“Hardware”对象,可以打开诊断视窗。3.诊断视窗的信息功能诊断视窗显示整个站在线的组态。用命令“PLC>Module&Information”查看其模块状态。第五章&&数字量控制系统梯形图设计方法5.1.2&&用经验法设计梯形图1.起动、保持与停止电路&经验设计法。2.三相异步电动机的正反转控制&&Network&1:A&&&&&I&1.0&&&&&&&&&&&&&&&=&&&&&L20.0A&&&&&L20.0A&&&&&I&1.1=&&&&&Q4.3A&&&&&L20.0A&&&&&I&1.2=&&&&&Q4.4//图5-5&(b)中的程序Network&1A&&&&&I&1.0A&&&&&I&1.1=&&&&&Q4.3Network&2A&&&&&I&1.0A&&&&&I&1.2=&&&&&Q4.4&3.常闭触点输入信号的处理4.小车控制程序的设计&按下右行起动按钮SB2,小车右行。暂停,左行,停止。&5.1.2&&根据继电器电路图设计梯形图&液压动力滑台开始停在最左边,在自动模式开关SA闭合。按下起动按钮SB1(I0.0),&YV11和YV2的线圈通电,快进;碰到中限位开关变为工进,&YV2的线圈断电;碰到右限位开关暂停8sYV11的线圈断电;时间到时快退,&YV12的线圈通电;返回初始位置时YV12的线圈断电,停止运动。5.2&&顺序控制设计法与顺序功能图5.2.1&&顺序控制设计法顺序控制设计法将系统的一个工作周期划分为若干个顺序相连的阶段(步,Step),用编程元件(例如M)来代表各步。在任何一步内输出量的状态不变,相邻两步输出量总的状态是不同的,步与各输出量有着极为简单的逻辑关系。&&&&使系统由当前步进入下一步的信号称为转换条件。顺序控制设计法用转换条件控制代表各步的编程元件,让它们的状态按一定的顺序变化,然后用代表各步的编程元件去控制输出。&&&当系统正处于某一步所在的阶段时,该步处于活动状态,称该步为“活动步”。非存储型动作与存储型动作。5.2.4&&顺序功能图的基本结构&&&&&4.复杂的顺序功能图举例&5.2.5&&顺序功能图中转换实现的基本规则&&&&1.转换实现的条件&&&&在顺序功能图中,步的活动状态的进展是由转换的实现来完成的。转换实现必须同时满足两个条件:(1)&该转换所有的前级步都是活动步;(2)&相应的转换条件得到满足。&&&&如果转换的前级步或后续步不止一个,转换的实现称为同步实现(见图5-18)。为了强调同步实现,有向连线的水平部分用双线表示。&&2.&转换实现应完成的操作&&&&转换实现时应完成以下两个操作:&&&&(1)使所有由有向连线与相应转换符号相连的后续步都变为活动步;(2)使所有由有向连线与相应转换符号相连的前级步都变为不活动步。&5.2.6&&绘制顺序功能图的注意事项&&&&(1)&两个步绝对不能直接相连,必须用一个转换将它们隔开。&&&&(2)&两个转换也不能直接相连,必须用一个步将它们隔开。&&&&(3)&顺序功能图中的初始步对应于系统等待起动的初始状态,初始步是必不可少的。&&&&(4)&顺序功能图中一般应有由步和有向连线组成的闭环。5.2.7&&顺序控制设计法的本质&5.3&&使用起保停电路的顺序控制梯形图编程方法5.3.1&&设计顺序控制梯形图的一些基本问题&&&&1.程序的基本结构2.执行自动程序的初始状态&&&&3.双线圈问题4.设计顺序控制程序的基本方法用存储器位M来代表步。顺序控制程序分为控制电路和输出电路两部分。&5.3.2&&单序列的编程方法1.控制电路的编程方法起保停电路的起动电路只能接通一个扫描周期,必须用有记忆功能的电路来控制M。&2.输出电路的编程方法&5.3.3&&选择序列的编程方法5.3.4&&并行序列的编程方法&5.3.5&&仅有两步的闭环的处理&5.3.6&&应用举例图5-25中的物料混合装置用来将粉末状的固体物料(粉料)和液体物料(液料)按一定的比例混合在一起,经过一定时间的搅拌后便得到成品。粉料和液料都用电子称来计量。初始状态时粉料称料斗、液料称料斗和搅拌器都是空的,它们底部的排料阀关闭;液料仓的放料阀关闭,粉料仓下部的螺旋输送机的电机和搅拌机的电机停转;Q4.0~Q4.4均为0状态。PLC开机后用OB100将初始步对应的M0.0置为1状态,将其余各步对应的存储器位复位为0状态,并将MW10和MW12中的计数预置值分别送给减计数器C0和C1。按下起动按钮I0.0,Q4.0,&Q4.1变为1状态,开始进料。电子称的光电码盘输出与称斗内物料重量成正比的脉冲信号。减计数器C0和C1分别对粉料称和液料称产生的脉冲计数。脉冲计数值减至0时,其常闭触点闭合,称斗内的物料等于预置值。Q4.0,&Q4.1变为0状态,停止进料。进入等待步后预置计数器。&&5.4&&使用置位复位指令的顺序控制梯形图编程方法&5.4.1&&单序列的编程方法&5.4.2&&选择序列的编程方法5.4.3&&并行序列的编程方法&&&图5-32&&组合钻床控制系统的梯形图值得注意的是标有“CD”的C0的减计数线圈必须“紧跟”在图5-32中使M0.7置位的指令后面。这是因为如果M0.4先变为活动步,M0.7的“生存周期”非常短,M0.7变为活动步后,在本次循环扫描周期内的下一个网络就被复位了。如果将C0的减计数线圈放在使M0.7复位的指令的后面,C0还没有计数M0.7就被复位了,将不能执行计数操作。5.5&&具有多种工作方式的系统的顺序控制梯形图编程方法&&&&&&&&&5.6&&顺序功能图语言S7&Graph的应用5.6.1&&S7&Graph语言概述&&&&&&&S7&Graph语言是S7-300/400的顺序功能图语言,遵从IEC&61131-3标准的规定。1.顺序控制程序的结构一个顺序控制项目至少需要一个调用S7&Graph&FB的块,一个S7&Graph&FB和它的背景数据块。&图5-45&&顺序控制系统中的块&图5-46&&S7&Graph编辑器&图5-49&&顺序控制器工具条与移动的图形3.S7&Graph的显示模式在View菜单中选择显示顺序控制器(Sequencer)、单步和永久性指令。&&&&(1)在顺序控制器显示方式,执行菜单命令“View&Display&with”,可以选择:Symbols:显示符号表中的符号地址;Comments:显示块和步的注释;Conditions&and&Actions:显示转换条件和动作;Symbol&List:在输入地址时显示下拉式符号地址表。&&&&(2)单步显示模式&&&&只显示一个步和转换的组合,还可以显示Supervision:监控被显示的步的条件;Interlock:对被显示的步互锁的条件;执行命令“View&Display&with&&comments”显示和编辑步的注释。&&&&用“↑”键或“↓”键可以显示上一个或下一个步与转换的组合。(3)在“permanent&instructions”(永久性指令)显示方式,可以对顺序控制器之前或之后的永久性指令编程。每个扫描循环执行一次永久性指令。可以调用块。&&&&&图5-50&运输带控制系统示意图与顺序功能图1.&&&&创建使用S7&Graph语言的功能块FB执行菜单命令“Insert&→&Direct”将进入“Direct”编辑模式。执行菜单命令“Insert&→&Drag-and-Drop”,进入“Drag&and&Drop(拖放)”编辑模式。执行菜单命令“View→Display&with→Conditions&and&Actions”,显示或关闭各步的动作和转换条件。&图5-51&&运输带控制系统的顺序功能图(1)命令S;当步为活动步时,使输出置位为1状态并保持。(2)命令R:当步为活动步时,使输出复位为0状态并保持。(3)命令N:当步为活动步时,输出被置为1;该步变为不活动步时,输出被复位为0。(4)命令L:用来产生宽度受限的脉冲,相当于脉冲定时器。(5)命令CALL:用来调用块,当该步为活动步时,调用命令中指定的块。(6)命令D:使某一动作的执行延时,延时时间在该命令右下方的方框中设置。&&&在“直接”模式用鼠标右键点击动作框,在弹出的菜单中选择插入动作行。6.对监控功能编程双击步S3后,切换到单步视图,选中Supervision(监控)线圈左边的水平线的缺口处,插入比较器图标,设置的监视时间为2小时。8.在主程序中调用S7&Graph&FB9.用S7-PLCSIM仿真软件调试S7&Graph程序&图5-52&&单步显示模式中的监控与互锁条件5.6.3&&顺序控制器的运行模式与监控操作执行菜单命令“Debug→Control&Sequencer”,对顺序控制器进行各种监控操作。&图5-54&&顺序控制器监控对话框1.自动模式&“Acknowledge”按钮确认被挂起的错误信息。点击“初始化(Initialize)”按钮,将重新起动顺序控制器,使之返回初始步。点击“禁止(Disable)”按钮,使顺序控制器中所有的步变为不活动步。2.手动模式&&&&选择“Manual”模式后,用“Disable”按钮关闭当前的活动步。在“Step&Number”输入框中输入希望控制的步的编号,用激活(Activate)按钮或去活(Unactivate)按钮来使该步变为活动步或不活动步。同时只能有1步是活动步。&&&&3.单步(Inching)模式在单步模式转换条件满足时,需要点击“Continue”按钮,才能使转换到下一步。&&&&4.Automatic&or&switch&to&next模式转换条件未满足,用“Continue”按钮也能转换到后续步。转换条件满足将自动转换。5.错误显示有互锁(Interlock)错误或监控(Supervision)错误时,相应的检查框为红色。&5.6.4&&顺序控制器中的动作1.标准动作中的命令:S,&R,&N,&L,&D,&CALL标准动作可以设置互锁(在命令的后面加“C”),仅在步处于活动状态和互锁条件满足时,有互锁的动作才被执行。没有互锁的动作在步处于活动状态时就会被执行。2.与事件有关的动作&表5-2&控制动作的事件名称&&&&事件意义S1&&&&步变为活动步S0&&&&步变为不活动步V1&&&&发生监控错误(有干扰)V0&&&&监控错误消失(无干扰)L1&&&&互锁条件解除L0&&&&互锁条件变为1A1&&&&报文被确认R1&&&&注册信号被置位,在输入信号REG_EF/REG_S的上升沿ON命令或OFF命令分别使命令所在的步之外的其他步变为活动步或不活动步。如果命令OFF的地址标识符为S&_ALL,将除了命令“S1(V1,&L1)&OFF”所在的步之外其他的步变为不活动步。&一旦S3变为活动步和互锁条件满足,指令“S1&RC”使输出Q2.1复位为0并保持为0。&&&&一旦监控错误发生(出现V1事件),除了动作中的命令“V1&OFF”所在的步S3,其他的活动步变为不活动步。&&&&S3变为不活动步时(出现事件S0),将步S7变为活动步。只要互锁条件满足(出现L0事件),就调用指定的功能块FB&2。4.动作中的计数器有互锁功能的计数器在互锁条件满足和指定的事件出现时,动作中的计数器才会计数。&&&&事件发生时,计数器指令CS将初值装入计数器。CS指令下面一行是要装入的初值。&&&&事件发生时,CU,CD,CR指令使计数值分别加1、减1或将计数值复位为0。&&&&5.动作中的定时器&&&&事件出现时定时器被执行。互锁功能也可以用于定时器。TL为扩展的脉冲定时器命令,一旦事件发生,定时器被起动。TD命令用来实现定时器位有闭锁功能的延迟。一旦事件发生,定时器被起动。互锁条件C仅仅在定时器被起动的那一时刻起作用。&(4)TR是复位定时器命令,一旦事件发生,定时器位与定时值被复位为0。当图5-57中的步S4变为活动步,事件S1使计数器C4的值加1。C4可以用来计步S4变为活动步的次数。只要步S4变为活动步,事件S1使A的值加1。&&&&S4变为活动步后,T3开始定时,4s后T3的定时器位变为1状态。5.动作中的算术运算&&&&在动作中可以使用:A:=B;A:=函数(B)&;A:=B&运算符号&C。A:=函数(B);5.6.5&&顺序控制器中的条件1.转换条件2.&&&&互锁条件:如果互锁条件的逻辑满足,受互锁控制的动作被执行。3.监控条件:如果监控条件的逻辑运算满足,表示有干扰事件V1发生。顺序控制器不会转换到下一步,保持当前步为活动步。如果监控条件的逻辑运算不满足,表示没有干扰,如果转换条件满足,转换到下一步。只有活动步被监控。4.S7&Graph地址在条件中的应用&&&&可以在转换、监控、互锁、动作和永久性的指令中,以地址的方式使用关于步的系统信息(见表5-3)。表5-3&&S7&Graph地址地址&&&&意义&&&&应用于Si.T&&&&步i当前或前一次处于活动状态的时间&&&&比较器,设置Si.U&&&&步i处于活动状态的总时间,不包括干扰的时间&&&&比较器,设置Si.X&&&&指示步i是否是活动的&&&&常开触点、常闭触点Transi.TT&&&&检查转换i所有的条件是否满足&&&&常开触点、常闭触点表5-4&&FB的参数集名称&&&&任务Minimum&&&&最小参数集,只用于自动模式,不需要其他控制和监视功能Standard&&&&标准参数集,有多种操作方式,需要反馈信息,可选择确认报文Definable/Maximum(V5)&&&&可定义最大参数集,需要更多的操作员控制和用于服务和调试的监视功能,它们由V5的块提供5.6.7&&用S7&Graph&编写具有多种工作方式的控制程序1.初始化程序、手动程序与自动回原点程序OB100中的初始化程序与5.5节中的图5-37完全相同。手动程序FC&2与5.5节中的图5-39完全相同。自动返回原点的梯形图程序FC&3与5.5节图5-42(b)中的相同。&图5-61&&主程序OB1S7&Graph&FB的参数有好几十个,图5-61中的FB1使用的是标准参数级,下面介绍图中使用的参数:连续、单周期或单步时“自动方式”M0.3为1,调用FB1。&&&&参数INIT_SQ(“自动允许”M0.0)为1:原点条件满足,激活初始步,复位顺序控制器。&&&&参数OFF_SQ为1(“自动允许”M0.0=0):复位顺序控制器,所有的步变为不活动步。&&&&参数ACK_EF(“确认故障”I1.3)为1:确认错误和故障,强制切换到下一步。&&&&参数SW_AUTO(“单周连续”M0.2)为1:切换到自动模式。&&&&参数SW_TAP(“单步”I2.2)为1:切换到Inching(单步)模式。&&&&参数T_PUSH(“起动按钮”I2.6):条件满足并且在T_PUSH的上升沿时,转换实现。&&&&参数ERR_FLT(“错误报警”Q4.5)为1:组故障。表5-9&&符号表符号&&&&地址&&&&符号&&&&地址&&&&符号&&&&地址&&&&符号&&&&地址&&&&符号&&&&地址自动数据块&&&&DB1&&&&松开按钮&&&&I0.7&&&&单步&&&&I2.2&&&&自动方式&&&&M0.3&&&&下降阀&&&&Q4.0下限位&&&&I0.1&&&&下降按钮&&&&I1.0&&&&单周期&&&&I2.3&&&&原点条件&&&&M0.5&&&&夹紧阀&&&&Q4.1上限位&&&&I0.2&&&&右行按钮&&&&I1.1&&&&连续&&&&I2.4&&&&转换允许&&&&M0.6&&&&上升阀&&&&Q4.2右限位&&&&I0.3&&&&夹紧按钮&&&&I1.2&&&&起动按钮&&&&I2.6&&&&连续标志&&&&M0.7&&&&右行阀&&&&Q4.3左限位&&&&I0.4&&&&确认故障&&&&I1.3&&&&停止按钮&&&&I2.7&&&&回原点上升&&&&M1.0&&&&左行阀&&&&Q4.4上升按钮&&&&I0.5&&&&手动&&&&I2.0&&&&自动允许&&&&M0.}

我要回帖

更多关于 程序员如何才能带团队 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信