全国服务热线 15221406036

榆林西门子PLC总代理商

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

榆林西门子PLC总代理商

1.引言

CPU寄存器状态字的各位给出了有关指令状态或结果的信息以及所出现的错误,我们可以将二进制逻辑操作状态位信号状态直接集成到程序中,以控制程序执行的流程。

2.状态字寄存器

先简单介绍一下CPU中状态字。
● 检查位:状态字的0位称作检查位,如果/FC 位的信号状态为“0”,则表示伴随着下一条逻辑指令,程序中将开始一个新的逻辑串。FC前面的斜杠表示对FC取反。
● 逻辑运算结果:状态字的第1位为RLO 位(RLO= “逻辑运算结果”),在二进制逻辑运算中用作暂时存储位。比如,一串逻辑指令中的某个指令检查触点的信号状态,并根据布尔逻辑运算规则将检查的结果(状态位)与RLO位进行逻辑门运算,然后逻辑运算结果又存在RLO位中。
● 状态位:状态位(第2位)用以保存被寻址位的值。状态位总是向扫描指令(A,AN,O,…)或写指令(=,S,R,)显示寻址位的状态(对于写指令,保存的寻址位状态是本条写指令执行后的该寻址位的状态)。
● OR位:在用指令OR执行或逻辑操作之前,执行与逻辑操作的时候,就需要用到OR这一状态位。OR位表示先前执行的与逻辑操作产生的值为“1”,于是,逻辑操作或的执行结果就已被确定为“1”。 PLC
● OV位:溢出表示算术或比较指令执行时出现了错误。根据所执行的算术或逻辑指令结果对该位进行设置。
● OS位:溢出存储位是与OV位一起被置位的,而且在更新算术指令之后,它能够保持这种状态,也就是说,它的状态不会由于下一个算术指令的结果而改变。 这样,即使是在程序的后面部分,也还有机会判断数字区域是否溢出或者指令是否含有无效实数。OS位只有通过如下这些命令进行复位:JOS(若OS = 1,则跳转)命令,块调用和块结束命令。
● CC1及CC0位:CC1和CC0(条件代码)位给出有关下列结果的相关信息:
• 算术指令结果
• 比较指令结果
• 字逻辑指令
• 在移位功能中,移出位相关信息。
可以用以下指令来检查条件代码CC1和CC0。

CC1 CC0 检查完成后,如果:

0 0 A == 0 结果 =0 

1 0 A > 0  结果 > 0

0 1 A < 0  结果 < 0

● BR位:状态字的第8位称为二进制结果位。它将字处理程序与位处理联系起来,在一段既有位操

作又有字操作的程序中,用于表示字逻辑是否正确。将BR位加入程序后,无论字操作结果如何,都不会造成二进制逻辑链中断。在梯形图的方块指令中,BR位与ENO位有对应关系,用于表明方块指令是否被正确执行:如果执行出现了错误,BR位为0,ENO位也为0;如果功能被正确执行,BR位为1,

ENO位也为1。在用户编写的FB/FC程序中,应该对BR位进行管理,功能块正确执行后,使BR位为1,否则使其为0。使用SAVE指令将RLO存入BR中,从而达到管理BR位目的。

状态字的9-15位未使用。

3.具体使用

下面我们结合STEP7中的指针编程来具体介绍条件码CC0/CC0的用法。

不同的指令在CPU中执行时间是不同的。浮点数比定点数执行时间要长;字逻辑指令比位逻辑指令执行时间要长;在某些程序中适当使用状态字来进行编程可以减少CPU程序的执行时间。

例1:比如说要比较一个DB中块的DBBO-DBB99这100个字节是正数是负数还是0,正数用1来表示;负数用-1来表示;0用0来表示。并且将对应结果存入MB200开始的100个字节中。我们通常的做法可能为:

如果利用条件码来进行编程,既可以减少程序的大小还会减少一定的指令执行时间,我们只需要将

中间的比较程序加以优化,即可以达到目的。

   例2:根据状态位C0和CC1的状态而跳转的跳转功能指令JZ不改变任何状态位的状态,而且逻辑操作结果RLO值也会“随着”该跳转功能带到跳转程序段中,供用户程序其它逻辑操作之用(不改变/FC状态)。 PLC资料网
示例 两个整数相减并需进行连续判断:
    L MW2
    L MW8
    -I
    JZ ZERO // 如果结果等于“0”,则跳转至标号ZERO处
             // 结果不等于“0”时所执行的指令
    ZERO:   // 结果等于“0”时,所要执行的指令
  如果用户不熟悉JZ指令和状态位C0和CC1的具体含义,编程时就需要通过比较指令将比较结果存入一个二进制位中,再根据这个二进制位通过JC/JCN指令来控制程序的执行了。

例3:我们实际应用中可能要利用某些协议转换网关(比如说Hilscher公司的NTTAP系列网关)来和某些串口协议的仪表进行通信时,会遇到CRC校验的问题,关于CRC校验时需要判断溢出位是否为1的问题来进行程序的进一步计算。我们以EURO2408的MODBUS通信时需要的CRC校验为例说明CRC校验的步骤:

1、装载16#FFFF到一个16位CRC寄存器;

2、将CRC寄存器的高8位字节与信息中的个8位字节相异或,结果返回到CRC寄存器中;

3、将CRC寄存器数据向右移动一位;

4、如果溢出的位等于1,则将CRC寄存器与16#A001相异或,结果返回到CRC寄存器中;

4、如果溢出的位等于0,则重复第3步;

5、重复第3、4步骤,直到已经移位了8次;

6、将CRC寄存器的高8位字节与信息中的下一个8位字节相异或,结果返回到CRC寄存器中;

7、重复第3步到第6步,直到信息中所有字节都与CRC寄存器相异或,并都移位了8次;

8、后的CRC寄存器中的结果即为CRC校验码,后被添加到信息(数据)的末尾(交换!低8位

在前,高8位在后;)

在第4步中需要判断溢出的位是否为1,如何判断对于整个程序有着重要的影响。我们可以用A>0指令来判断这个条件,具体代码的编写,有兴趣时大家可以根据上面的步骤编写一个自己的CRC程序。

4.结束语

在一般情况下,我们不必考虑这些状态位,但在某些情况下,利用这些状态位并结合一定的指令,可以给我们的编程带来更大的灵活性,同时对于进一步提高自己的编程水平也有一定的作用。

   在重要的工业生产领域和军用产品设计中,采用冗余技术提高控制系统可靠性的做法越来越普遍。常规的冗余就是采用成倍增加元件的方式来参与控制,以期能够将因控制设备的意外而导致的停机降到少。

    燃油锅炉是输油管道加热系统中的加热设备,锅炉的无故障运行是整个输油管道网络正常工作的保证。在锅炉控制系统中,设计采用两组独立运行的西门子PLC软件冗余控制系统,保证加热系统的可靠、连续、安全运行。

    冗余常见的方式是中央处理器冗余、I/O 冗余和通讯冗余。中央处理器单元冗余(即一用一备或一用多备),在主处理器单元失效时,备用处理器单元自动投入运行,接管控制。在控制权的交互方式上又可分为硬件冗余和软件冗余两种。硬件冗余是采用硬件方式进行切换,不用编程。除了成对的使用处理器外,还用专用的热备模块,热备模块负责检测处理器,一旦发现主处理器失效,马上将系统控制权交给备用处理器。硬件冗余均采用光纤通讯,通讯速度快,系统稳定,切换时间更短,但是成本也比较高。软件冗余方式只需要成对的处理器,用软件编程的方式进行处理器的切换,组成比较经济,构成十分灵活,但程序处理需要一定的时间,对于时钟同步及切换时间要求不是十分严格的场合,选用软件冗余方式还是非常经济有效的。

1.控制系统构成:

1.1 监控系统整体设计

    本控制方案设计采用了SIMATIC WinCC 组态软件来实现过程控制的上位机组态,WinCC是在生产和过程自动化中解决可视化和控制任务的工业技术系统。下位机控制系统设计采用两套独立的西门子 SIMATIC S7-300系列PLC实现冗余控制,其编程软件STEP-7功能强大,模块化结构,优化了用户程序。

监控系统构成实现如图1:



图1 冗余监控系统
Fig.1 Software redundancy monitoring system

1.2 PLC软件冗余控制系统

    软件冗余是Siemens实现冗余功能的一种低成本解决方案,可以应用于对主备系统切换时间要求不高的控制系统中。

1.2.1系统结构

Siemens软件冗余系统的软件、硬件包括:

1套STEP7编程软件(V5.x)加软冗余软件包(V1.x);
2套PLC控制器及I/O模块,可以是S7-300或S7-400系统;
3条通讯链路,主系统与从站通讯链路(PROFIBUS 1)、备用系统与从站通讯链路(PROFIBUS2)、主系统与备用系统的数据同步通讯链路(MPI 或 PROFIBUS 或 Ethernet);

软冗余能够实现:

1.  主机架电源、背板总线等冗余;
2.  PLC处理器冗余;
3.  PROFIBUS现场总线网络冗余(包括通讯接口、总线接头、总线电缆的冗余);
4.  ET200M站的通讯接口模块IM153-2冗余。

    软冗余系统由A和B两套PLC控制系统组成。开始时,A系统为主,B系统为备用,当主系统A中的任何一个组件出错,控制任务会自动切换到备用系统B当中执行,这时,B系统为主,A系统为备用,这种切换过程是包括电源、CPU、通讯电缆和IM153接口模块的整体切换。系统运行过程中,即使没有任何组件出错,操作人员也可以通过设定控制字,实现手动的主备系统切换,这种手动切换过程,对于控制系统的软硬件调整、更换非常有用。

1.2.2 系统工作原理

    在软冗余系统进行工作时,A、B控制系统(处理器,通讯、I/O)独立运行,由主系统的PLC掌握对ET200从站中的I/O控制权。A、B系统中的PLC程序由非冗余用户程序段和冗余用户程序段组成,主系统PLC执行全部的用户程序,备用系统PLC只执行非冗余用户程序段,而跳过冗余用户程序段。下面我们看一下软冗余系统中PLC内部的运行过程(图2):

  PLC


图2 冗余工作原理
Fig.2 The working principle of software redundancy 

1.3 PLC控制系统设计

    利用信号采集模块实时采集锅炉的输油管进出口温度和压力,根据设定起炉、转火、停炉温度值控制燃烧机的自动启动、转火、停止等操作。根据温度、压力报警设定值,控制锅炉紧急停炉和故障报警等处理。

    控制系统组成:一组CPU 315-2 DP 处理器(带PROFIBUS-DP接口);2组ET200M模块(各自带2个IM352接口);一组SM321 DI开关量输入模块;一组SM322 DO开关量输出模块;3组SM331 AI模拟量输入模块。一组CP343-1以太网通信处理器模块。

1.4 WinCC与S7-300的通信实现

    根据控制方案的设计,采用WinCC组态作为上位机监控,用西门子的S7_300作为下位机执行机构,我将采用以太网的标准Tcp/IP协议实现WinCC与S7-300的通信,将现场的状态参数、控制参数等上传到监控层。这个变量传递的过程可以用图3来说明:



图3 变量监控过程
Fig.3 Course of variable monitoring

1.5 WinCC组态冗余的实现

    通过两台独立计算机同时运行项目功能完全相同的WinCC组态项目,构成并行服务器来实现组态冗余结构,两台服务器通过以太网连接,并与PLC连接。每台服务器都带有其自身的过程连接和可用的数据归档,工作PLC站将过程数据和消息同时发送到两台冗余服务器。如果一台服务器发生故障,另一台将继续接收和归档来自PLC工作站的过程值和消息。出现故障的服务器重新工作后,冗余服务器为故障时间的归档执行同步,通过将丢失的数据重新传送到出故障的服务器,来消除故障引起的归档差别。

    冗余服务器的组态实现:1.必须在两个冗余服务器上组态功能完全相同的WinCC组态项目(建议使用WinCC项目复制器)。2. 对于WinCC冗余,需要同步服务器(建议使用设备的时间同步)。3. 配置冗余用户归档,实现用户归档同步。4. 组态在线消息同步。5. 打开冗余编辑器,在“冗余伙伴服务器”项,输入冗余服务器的名称,并在“用户归档”项下,激活“用户归档的同步”。

    本系统通过动态向导设置读取IP冗余地址,实现主S7-300数据监控。

1.6 软冗余程序的设计

    软冗余程序需要西门子提供的软冗余软件包及STEP7,在A站的Block中插入OB1(主循环程序块)、OB35(定时中断组织块)、OB100(暖启动调用程序块)、OB80(在主系统与备用系统切换时间超时,调用该块)、OB82(DP-Slave ET200站上的IM153-2模块出错报警,调用该功能块)、OB83(DP从站的接口模块与主站链接断开或链接重新建立时调用该块)、OB86(主从站通讯出错调用该块)、OB87(通讯失败调用该块)、OB122(外围设备访问出错调用该块)、OB121等组织块,并对其中的OB100、OB35、OB86进行编程。

    首先,用户需要在初始化程序中(OB100)定义冗余部分的数据区,该数据区可以包括:一个过程映像区,一个定时器区,一个计数器区和一个数据块区,S7-300同步的大数据量为8kBytes。本控制系统将每台锅炉的温度、压力采集值和运行状态参数分别放置在不同的DB数据块,并定义为需要冗余的数据块。

    使用的是OB35的默认属性,即每100ms中断触发一次,可以根据实际的需要在CPU属性中修改中断的时间间隔。在OB35里调用FB101S ’WR_ZYK’功能块,FB101块中封装了冗余功能的程序段,实现冗余功能。当执行‘SWR_START’程序块时,系统分配这些数据区,不能用S7 的定时器和计数器,只能使用IEC标准的定时器和计数器。

    OB35中的程序段也可以在OB1中实现,只是不使用中断的方式,而使用主循环的方式。

    调用FB101时,你可以在线地读出RETURN_VAL参数的数值,如果为0,说明冗余链接正常。如果为8015说明数据同步的连接不成功,原因是CP342-5之间的FDL链接建立的不正确或物理链路不通,或者是FC100的VERB_ID参数与NETPRO中的ID号不一致。

2.结束语:

    以上简要介绍了SIEMENS软件冗余系统的系统组成、工作原理、程序编制,整个系统组成简单、构成灵活、程序编制比较容易。系统在某输油站投入运行以来,保证了系统无故障停机运行,提高了工作效率,降低了维护费用,以其可靠性、灵活性、便利性受到用户好评。


没有

联系方式

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