西门子plc时间到了不停止运行时添加数据块会停机吗

杰控组态西门子PLC经验总结


新建工程项目,选择设备通讯--> 安装驱动,选择西门子S7TCP。


从服务器端读取1块布尔型数据。


选择运行数据库-->开关只读变量,增加一个显示切换状态的变量。如下图,当转换开关切换时,IB0.5状态变化,根据该变量,组态显示不同的状态。



从客户端读取模拟量数据块,从db4.104读取80个整型数据。


添加模拟量变量,注意,西门子的数据解码需要反过来,即高字节在后,低字节在前。


变量的处理方式如图:否则最后显示的数值不对

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请。

数据块和其他信息),他可以是存储器卡或内部集成的RAM。存储器卡一般有两种,其中,当采用RAM存储器卡时,系统必须配备电池,当采用FlashEPROM存储器卡时,则断电不会丢失,但内部RAM中的数据仍蓄电池保持。工作存储器仅包含和运行时间使用的程序和数据,RAM工作存储器集成在CPU中,通过后备电池保持。系统存储器包括过程映像输入和输出表(PII,PIQ),为存储器,定时器,计数器和局部堆栈。爆出存储器是非挥发RAM,即使没有安装后备电池也可用来保持某些数据,设置CPU参数是要指定爆出的区域。

从上述概念可知,加入我们在线修改程序,被修改的块存放在工作存储器中,当把程序上载到编程器时,就从工作存储器传到编程器。由于断电会导致RAM

数据的丢失,所以假如要安全保存被修改的程序,就不许保存在FEPROM或硬盘上。

一些概念:组态就是指在硬件组态的站窗口中分配机架,块可分布式I/O,可从硬件目录中选择部件;参数组态就是建立可分配参数模块的特性,例如启动特性、保持区等;设定组态就是设定好的硬件组态和参数分配;实际组态指已存在的实际组态和参数分配,一般是在已装配的系统中,从PLC的CPU中读出来的。

启动硬件组态:新建一个项目(PROJECT),选择该项目,并插入(INSERT)一个站(SIMATIC),在SIMATIC管理器中选择硬件站(HARDWARE)双击OPEN即可,我们时可以打开硬件目录——VIEW-CATALOG,如果选择标准硬件目录库,他会提供所有的机架、模块和接口模块。

产生硬件组态:主要选择机架,指定模块如何在机架摆放。具体是:

或拖到左边窗口,这样在左边的窗口中就出现两个机架表:上面的部分显

示一个简表,下面的部分显示带有定货号、MPI地址和I/O地址的信息。

2、、电源:双激活拖拉目录中的“PS-300”模块,放到表中的一号槽位上。

3、CPU:从CPU-300的目录中选择你所配置的CPU。列入2号槽位。

4、3号槽位:一般接口模块保留(用多层组态),在实际配置中,如果这个

位置要保留以后安装接口模块,在安装时就必须插入一个占位模块。

5、信号模块:从4号槽位开始最多可以插入八块信号模块(SM卡),包括

通讯处理器(CP)和功能模块(FM)。

当然我们可以直接用CPU上的MPI口,省钱但速度相对慢点。

分配参数:按要求对各模块参数进行设置。双击模块打开属性对话框(Properties)

CPU——属性包括通用属性General(主要提供模块的类型,位置和MPI地址——如果要把几个PLC通过MPI接口组成网络,每个CPU分配不同的MPI地址);启动项目START.UP(主要选择三中启动方式,HOT——从断电时的语句,也就是程序断电处开始,WARM——从头,也就是程序第一步开始,COLD——冷启动;监视时间包括从模块读准备的信息时间和传递参数到模块的时间;可保存数量Rete ntive Memory:用来指定当出现断电或从STOP到RUN切换时需要保持的存储区域;循环/始终存储器;保护功能(设定钥匙权限和各种级别急口令);诊断/时钟。

保存下载及上传:经过上述设置以后,我们就可以保存、编译、一致性检查

后,把设定组态下载到PLC中。当然,对实际运行的PLC,我们也可以通过上传(Upload Station)把实际组态度到编程器。

硬件诊断及组态中可能出现的问题:在SIMATIC管理器中可以用

PLC-Diagnose Hardware 来获得PLC的诊断状态。在实际组态过程中最可能出现的问题是以下几点:

1、在PLC-300中,组态中有空位置,此时组态不能编译通过;

2、不正确的CPU(例如:是CPU 315-2DP,不是CPU 314)此时组态不能下载;

3、模拟量模块分配到不正确的槽位置,此时CPU会因为参数分配错误进入STOP

4、模拟量模块不正确的测量范围,导致模拟量模块组态错误。

STEP 7编程语言:LAD梯形图/FBD功能快图/STL语句表,更加丰富,更加灵活,但对粗学者比较难以理解,当然某些语言不能用LAD表达。

块编译的启动:选择所需编程语言,双击打开需编辑的块,如OB1或FC1等。当采用LAD或FBD编程语言时,可用工具条来插入简单的程序文件,当采用STL,则可用在线帮助得到有关语言的语法和功能——HELP.Help on STL。

编程器块组成:声明表:属于块,为块声明变量和参数;代码区:包含程序本身;编程元件:可选打开或关闭,内容依赖于所选择的编程语言,双击插入或拖拉插入。

VIEW菜单:可切换到另一种语言,并可实现LAD/FBD/STL之间的转换,要知道,LAD/FBD转换成STL的,在语句表中可能不是最有效程序。而STL转换其他则不一定行,转换不了的仍用语句表示,转换过程绝不会丢失程序。

其他菜单由于篇幅较大,请最好结合教材及软件自己熟悉。

在讨论那调用块之前先介绍以下OB1块——主循环块,绝对不能改名或删除,它是由操作系统循环调用。所以,当我们编辑好一块以后,如FC1,为了让新块集成在CPU中的循环程序中,必须在OB1中调用。即在OB1中CALL F1。子程序(新块FC 1)执行的条件有以下三个:已经下载到PLC中,必须在OB1调用,PLC处于运行状态。下载到实际的PLC时,我们可以选择所有块或其中的一个或几个,再Download到PLC中。

程序的执行过程:当PLC得电或从STOP切换到RUN模式,CPU会执行一次全启动(使用OB100)在全启动期间,操作系统消除非保持为存储器、定时器和计数器,删除中断堆栈和快堆栈,复位所有保存的硬件中断,并启动扫描循环监视时间。

CPU的循环操作包括三个主要部分:CPU检查输入信号的状态并刷新过程影象输入表(PII..);执行用户程序,也就是OB1中的程序及一些事件(中断等);把过程输出影象输出表(PIQ)写到输出模块。上面所提到的PII/PIQ是CPU中特定的存储器,用来保存输入模块/输出模块的信号,在用户程序中检查时,可以保证在一个扫描周期内为同样的信号状态。

程序结构:上面曾经提到过,一个比较简单的程序,我们可以不用各种子程序块(如FC.FB),而是直接把整个程序直接写在一个块上(通常是OB1主块上),CPU逐条的处理指令,我们称这种叫线形编程;面对稍微有点复杂的程序,我们可以把它分成几块,每块包含处理一部分任务的程序,在每一块中可以进一步分解、成几个段,可以为相同类型的段生成模块,组织块OB1包含按顺序调用其他块的指令,我们把这种方法叫分块编辑;另外,对可重复使用的功能装入单个块

中,OB1(或其他块)调用这些块并传递相关参数,这种方法叫结构化编程。用户块(程序块)包括程序代码和用户数据,在结构化程序中,一些快循环调用处理,一些需要时才调用。程序块共有组织块(OB)、功能块(FB)、功能(FC)、系统功能块(SFB)和系统功能(FC)5种,其中系统块是在CPU操作系统中预先定义好的功能和功能块,这些去不占用用户程序空间。

在下节讨论伪指令前先讨论一下SIEMENS的模块地址:在不带DP口的

S7-300和不组态的S7-400采用固定槽位编址,使用带DP口的S7-300和S7-400,可以分配模块的起始地址。但要注意,由于CPU存储器复位后,参数和地址会丢失,这就意味着所有地址都回到和槽位有关的地址或是缺省地址。我们还是以

S7-300为例,在S7-300中,机架上的插槽号简化了模块地址,模块的第一个地址模块地址决定。一般槽1给电源,槽2是CPU,曹3为IM(接口模板)所用,4~11为I/O卡、CP卡和FM卡。他们固定地址就是为每一个槽位保留4个字节——就是说,槽4(第一块I/O卡),地址为0.0~3.7(供32位),槽5(第二块I/O卡)地址为4.0~7.7,假设敌一卡是DI,那么他们的地址就是I0.0、

I0.1、、、I3.7,若第二卡为DO卡,地址为Q4.0、Q4.1、、、、Q7.7,请注意,当使用16通道的DI/DO模块时,每个槽位就会失去两个字节(16位)。

注意:异或操作是指:当两个信号中仅有一个满足时,输出状态才是“1”,这个指令不能适用于多个地址的异或逻辑操作(N个中有一个1时才是1),所以三个及三个以上的异或指令,就的RLO(逻辑操作结果)和另一个输入异或运算。

置位S光是置位,一直保持到它被另一个指令复位为止。

复位R光是复位,一直保持到它被另一个指令复位为止。

触发器的置位复位:同时有置位输入和复位输入,如果两个输入端同时出现RLO=1,根据优先级。在LAD/FBD中,分别有职位优先和复位优先的不同符号,在STL中,最后编写的指令具有高优先权。注意:如果用置位命令把输出位置,当CPU全启动时它被复位,但如果声明保持,则当CPU全启动时,他就一直保持置位状态。

连接器:M0.0(#),为中间赋值元件,它把当前RLO保存到指定地址,当它和其他元件串联时,连接器指令和触点一样插入。

注意连接器不能:直接连接到电源母线、直接跟一个分支、用在分支末尾。但连接器可以用“NOT”元件对它进行取反操作。

NOT=取反;CLR=复位(仅用在STL中);SET=置位(仅用在STL中);SAVE=把RLO保存到状态寄存器中的“BR”;BR=用来从新检查保存的RTO.

主控继电器功能MCR:是一个用来或断开电流的逻辑主开关。如果MCR条件不满足:0分配给输出线圈,置位线圈和复位线圈指令不改变当前值,MOVE指令把0传到目的地址。MCRA指令启动主控继电器/MCRD指令取消MCR功能,直到另一个MCRA指令起作用。

无条件转移(不依赖于RLO)JMP

在LAD/FBD中,在线圈符号上面输入作为表示的标号或符号,如NEW1,NEW3

等,标号最多有4个字符,第一个字符必须使用字母或“”。

跳转规则:可以向前或向后跳转,跳转指令和跳转目的必须在同一个块中(最大跳转长度为64K字节);在一块中跳转目的只能出现一次;跳转指令可以用在FB、FC和OB中。

条件跳转:有两个:JC——当RLO=1时,JC才执行,当RLO=0时,不跳转,继续执行下面的程序,但置RLO=1。JCN——当RLO=0时,JNC才执行,当RLO=1时,不跳转。

边沿检测:RLO-边沿检测和信号-边沿检测。

RLO-边沿检测:当逻辑操作结果变化时,产生RLO边沿。检测正边沿FP——RLO从“0”变化到“1”,“FP”检查指令产生一个“扫描周期”的信号“1”;检测负边沿FN,则RLO从“1”变化到“0”,“FN”检查指令产生一个“扫描周期”的信号“1”。上述两个结果保存在“FP(FN)”为存储器中或数据位中,如M 1.0。。。,同时,可以输出在其他线圈。

信号-边沿检测:同上面的RLO指令类似,当信号变化时,产生信号边沿,也有正/负边沿之分:POS/NEG.。

上述各种指令,最好请结合实际软件,掌握其方法、特性和不同之处,其他复杂时令请参考各种高级编程手册。

数字指令——在讨论数字指令前先了解一下各种数据格式,关于二进制,十进制及其他倏地表示方法,在其他地方都有介绍,这里就不再重复。

一、数据格式(16位):数据类型INT是整数(16位),其中符号(15位)表示正数或是负数(“0”=正数,“1”=负数),16位整数的数值范围是-32768~+32767,在二进制格式中,整数的负数形式用正数的二进制补码表示,(二进制补码利用区返加1得到)负数的位格式,对零的位加权求和,在家1,然后在前面放一个负号。BCD码:十进制的每一位用四个二进制数表示,因为最大为9.所以需要四位二进制才能表示出来(十进制的9=1001二进制),要注意,从0~9的十进制数的BCD码表示与二进制数表示相同,但BCD码一般用作显示,并非二进制,上面的INT(整数)主要是用来运算。

二、数据格式(32位):DINT类型的数据——带符号位的32-位整数,定义为“双整数”,他的表示方法及范围是:L#-~L#+;还有一个是实数型REAL型(也叫浮点数),是1.8~8之间,实数的通用格式位(Sign)*(1.f)*(2e-127),

其中Sign为符号位第31位(即最高位),低位的0~22位为f=底数为,23~30为e=指数,STEP 7中的实数是按照IEEE标准表示的。

数据的装入和传递:MOVE(LAD/FBD)或L和T(STL):如果输入EN有效,输入“OUT”。装载和传递指令的执行与RLO无关,数据通过累加器交换,装在指令把右边源地址的只写到累加器1(不够32位用0不齐),传递指令拷贝累加器中一些或所用内容到指定的目的地址,如先装载L +5 / L L3523312 / L B#16#EF (分别为装载一个整数+5/一个双整数523312/一个十六进制数EF)到第一累加器(ACCU1),然后在传输到目的地,如T MB5等。累加器是CPU中的辅助存储器,他们用于不

同地址之间的数据交换、比较和数学运算操作。S7-300有两个32位的累加器,S7-400有四个32累加器,在装载过程中,ACCU 1中的值先移入ACCU 2,在新值写入前清零,然后再把要装入得值写入ACCU 1,传递时则从ACCU 1中读出。装载和传递指令可以指定32胃中的一个字节或是字及双字,如果仅传递一个字节,只是用右边的8位。在LAD/FBD中,我们可以使用MOVE的允许输入(EN)把装载和传递操作和RLO联系起来,在STL中,则总是执行装载和传递操作,而和RLO无关,但是,我们可以利用条件跳转指令来执行和人咯有关的装入和传递功能。

定时器:STEP 7中,CPU位定时器保留了一个特殊存储器,这个去专门为每个定时器地址保留一个16位字。定时器的位0~9包含用表示的时间值,12、13位为时间基准——0表示10ms,1表示100ms,2=1秒,3=10秒,时间基准定义的是一个单位代表的时间间隔。时间值可以直接用常数来表示(此时时间基准自动由系统自动分配),例如S5T#100ms,S5T#2h2m2s20ms。

S5定时器格式:时间的指定可以如上述所说直接输入固定的时间常数,或由操作人员用拨轮按钮改变或和存储器字或数据字中的时间值有关的过程和配方。在使用中可以用L命令(读出)定时器BI输出端的地址(包含10位二进制数表示的时间值,不带时间基准),如L T5;也可以用LC命令读出定时器BCD端的地址(3位BCD数表示的时间值和12、13位的时间基准)。具体介绍几种常用的定时器:下面只介绍功能,具体符号可以在元件表中找。

接通延时(SD)定时器:当定时器的“S”输入端的RLO从0变到1时,定时器启动。只要输入S=1,定时器起作用,当到达指定的TV值(预设值)时定时器启动(输出Q=1),同时该定位器还有一个复位端R端,当等于1时,就清除定时值并且复位Q输出。当前时间可以在BI输出端以二进制数读出,在BCD端以BCD码形式读出,当前时间值是TV的初始值减定时器启动以来的经过时间。

带保持接通延时定时器(SS):与上面SD定时器基本一致,唯一不同的就是具有保持功能,也就是说:一旦S输入端的RLO从0变到1,定时器便启动,及时定时过程中出现输入S端=0,定时器仍继续计时。但有一点,在保持过程中,如果S输入端再次从0变1,则定时器重新开始。

关断延时定时器(SF):从某些方面说,和上面提到的SD接通延是定时器状态正好相反。当定时器的S输入端的RLO从“1”变到“0”时,定时器启动,输出信号Q=0,其他功能和输出与SD一样。个人理解,是否SD接通延时定时器,较多的用于正逻辑,而SF更多地用于事故安全型(有时也叫反逻辑,就是在正常的工况中,输入输出都为1或是带电情况)中。

脉冲(SF):这个比较好理解,当“S”输入端从0变到1时,启动定时器,输出Q=1(最多一个脉冲)。输出Q复位的情况为:定时器时间到或启动信号从1变到0或复位输入R信号=1。

扩展脉冲(SE):当输入端的RLO从0变到1时,定时器启动,输出Q置1,即使当中S端输入变到0,输出Q仍保持1.当定时器正在运行,如果启动信号从0

变到1,定时器被再次启动。它的复位情况是定时器时间到或复位S端有信号1。位指令定时器:所有定时器也可以用简单的位指令启动,这种方法和前面讨论的定时器功能的相似处在于:启动条件在S端,指定时间值,复位条件在R端输入,信号相应在Q端。不同的是(对LAD/FBD)不能检查当前时间值(没有BI/BCD 输出)。

我要回帖

更多关于 200plc定时停机 的文章

 

随机推荐