
西门子6XV1830-0EH10
西门子6XV1830-0EH10
{心中有空间,梦想就有可能}
老版的STEP 7有一个PID参数赋值工具,其中的监控曲线对话框可显示PID的被控量、给定值和PID输出值的曲线,但是监控曲线画面很小。
Smart 1000的组态软件是WinCC flexible。要在WinCC flexible的I/O域 限制输入值。
S7-200有密码能监控状态表吗?若是能监控数据是否可以修改?
答:在系统块中设置CPU密码以限制用户对CPU的访问。可以分等级设置密码,给其他人员开放不同等级的权限。
L P##PulsePoint
答:L P##PulsePoint //装载变量#PulsePoint的地址到累加器1
以上代码实现Pointer类型指针地址的解析
pt100 传过来的温度去控制调节阀开量的大小。是不是要先知道pt100的量度范围?为什么大家都说是0-100就可以?利用FC105将模拟量变成实际工程量后,是不是再用FC106把工程量转换为模拟量输出4-20mA去驱动调节阀?
答:在PID调节中有不同的物理量,因此在参数设定中需将其规格化:
上述调节阀门是"气开"式的,即输入20mA时阀门全开,4mA时全闭(失电全闭)。若调节阀门是"气闭"式的,即输入20mA时阀门全闭,4mA时全开(失电全开)。
S7-300内部区域寄存器,AR1,AR2,在编程软件上哪里可以监控到它的数据,具体见图片
答:1、一个常用简便的方法,在程序中将AR1、AR2中的内容传送到数据块或其他存储单元。用变量表来监视这些数据块或其他存储单元。例如,监视DBD20、或MD24即可。
答:sm0.1只是一个开关量,它的定义是在第一个运行周期为1,之后周期为0.
以前时间继电器都是S5T#格式的,现在需要再触摸屏上输入单位S的时间数,不想自己编辑个处理块,想问下,有没有现成的FC或FB块,能有自动格式转化功能的?
答:从上位机写整型数INT或实数REAL到PLC,首先该数值需包含以毫秒为单位的时间值,在写入PLC的数据存储区后,利用ITD(Integer to Double Integer)或RND(Real to Double Integer with Rounding Off)将该值转换为双整形,然后将该值写到类型为TIME的变量里,在程序中调用FC40,将TIME转换成S5TIME即可。
由HMI输入秒数,在PLC中进行换算:
在HMI上做了一个日期时间域显示PLC的日期时间,并用IO域设置系统的年、月、日、时、分、秒,不设置星期几,还用一个符号IO域加上一个文本列表来显示星期几。
答:可能是你用SET_RTC指令时,星期这一位是空的,那么写进去的是0,0是无效数据。
下面一段程序如果最后一条指令前面没有注释符号“//”,在下载后不能成功地切换到运行模式,SF灯亮。
最后一条指令加上注释号(该指令不起作用),运行出错时在CPU模块信息的诊断缓冲区中,有下面的诊断信息:
事件8 / 15: 事件ID 16# 2523
写入时发生区域长度错误
全局DB,双字访问,访问地址:65532
OB 编号: 1
模块地址: 30
所需的OB:编程错误OB (OB121)
在当前工作模式下,OB 未找到、或被禁用、或无法启动
内部错误, 进入的事件
08:55:02.726 2011-11-23
错误的原因是未给MW50赋值,其值为0,下面的减法运算结果为16#FFFF:
L MW 50
导致最后一条间接寻址指令“ T DBD [AR1,P#0.0]”的地址值远远地超出了DB1定义的范围(200字节)。
值得注意的是必须用“//”临时将最后一条指令屏蔽,才能对程序进行监控,从而发现问题。
要实现S200PLC和计算机自由口通信,我是否能在计算机安装MOXA公司的多串口卡cp-132ul(2路485接口),直接制作串口线缆,和PLC线缆进行通信。这样能成功吗?
cp-132ul串口卡引脚定义:3——DATA+(B);4——DATA-(A);5GND。
西门子公司说自由口通信得用PC/PPI线缆(RS232转485)才能实现。S200PLC不能RS485总线接口和其他带RS485总线接口的设备通过自制串口线缆进行通信吗?那么和S200PLC有关的设备通信网络全都要用PC/PPI线缆吗?
答:1、西门子公司说自由口通信得用PC/PPI线缆(RS232转485)才能实现?
5、PLC实时数据处理
在工业自动化系统中,为了使系统长期稳定可靠地运行,大量选用可编程逻辑控制器(PLC)作为控制器,甚至在此基础上组建冗余系统进一步提高系统的可靠性。冗余的分类方式很多。目前,采用的PLC冗余方式分为2种,即软冗余和硬冗余。西门子公司在这2方面均给出了解决方案。基于S7-400H的硬冗余的可靠性高,但构建系统成本也较高。而基于S7-300或S7-400的软冗余是一种综合考虑提高可靠性和降低成本的折中方案。目前,软冗余系统已经在污水处理、冶金、化工等控制工程中得到了普遍应用。但目前对于软冗余的性能,仍缺乏系统的研究。文中首先叙述西门子PLC软冗余系统的实现原理,然后重点分析主备切换时间和数据同步时间,以便为类似控制系统设计提供参考依据。
在系统运行时2个CPU均启动,但只有主CPU执行控制命令,备用CPU检测主CPU状态,时刻准备接替主CPU继续工作。与主CPU通信的IMl 53—2模块处于激活状态使主CPU能访问I/0模块。当系统发生特定故障时,系统可以实现主备切换,备站接替主站继续运行。这些故障包括:主机架电源、背板总线等故障;CPU故障;Profibus现场总线网络故障;ET200M站的通信接口模块IMl53故障。
在PLC每个循环执行周期中,主系统先凋用FBl01接收并分析备系统状态,然后执行冗余程序,最后再调用FBl01将需要同步的数据发送到备系统。备系统先调用FBl01接收并分析主系统状态,跳过冗余程序,然后将备系统状态发送到主系统。需注意的是,实现冗余功能的最重要模块FBl01执行时先分析主备系统状态,然后再发送数据(或接收数据)。由于软件是顺序执行,将导致接收到对方故障信息后,对故障处理的滞后。软件顺序执行机制是导致软冗余切换时间较长的一个重要原因。
式中t为主备切换时间;Tcyc为PLC循环扫描周期;t(FB101)为冗余功能块FBl01执行时间。
因为OB86中只调用FCl02诊断模块,所以tE由FCl02的执行时间决定。为分析OB86中调用FCl02时FCl02的执行顺序,对FCl02进行了适当的修改以便采集数据。这些修改主要包括:在FCl02的开始加入采集状态程序段;在跳转指令处采集跳转条件。在手动触发一些故障之后,对得到的数据进行分析便得到了FCl02的执行顺序。在各个代码段两端插入读系统时间功能块,对FCl02的程序执行时间进行分段测量。结果如表1所示(表中,
{西门子与客户携手,让关键所在,逐一实现}
联 系 人: 黄勇《黄工》 24小时联系手机: 13701633515
直线销售 电 话: 021-31660605 在 线 商 务 QQ: 77956468
德国制造 现货
全新原装 参数
质量保证 保修
价格优势 特价
我公司大量现货供应,价格优势,品质保证,德国原装进口
Step7 Professional V11的PID调试功能
S7-300/400和S7-1200都可以使用STEP 7 V11的PID调试工具。双击项目树的文件夹“\工艺对象\PID_DI”中的“调试”,打开PID调试窗口(见下图),可以用趋势视图监视PID控制器的设定值、过程值和调节变量的曲线。调试窗口将老版STEP 7的PID参数赋值工具中的监控曲线对话框、参数赋值对话框和曲线记录参数设置对话框的功能集成到一起。趋势图有Strip(连续显示)、Scope(区域跳跃显示)、Sweep(滚动显示)和Static(静态区域显示)4种显示模式。可以用多种方式方便地移动坐标轴与改变坐标轴的比例,可以修改和下载PID参数和设定值,有手动模式。下图是我用S7-300/400的仿真软件和PID调试工具模拟调试闭环控制系统得到的曲线。
WinCC flexible Smart 1000 IO的值 能限制吗
WinCC flexible的I/O域 限制输入值:
1、WinCC flexible的变量编辑中进行设定I/O域 限制输入值。
打开WINCC FLEXBLE 软件。在通讯目录下点击变量,出现全部变量表,选择你要限制的那个变量,单击右键,选PROPERTY VIEW,在属性中选限制值,输入你的上限与下限即可。
2、也可以做一个脚本,把I\O中的变量作为触发变量,当变量大于和小于某个值是就弹出一个窗口提示输入的变量超出了范围。前提是弹出窗口时,变量的值没有被写入。所以最好用一个中间变量来做该I\O的变量。
Smart 1000报警画面能编辑吗
在模板里做,模板里把增强对象中的报警窗口拉到模板里。设置些属性。在报警管理中连接报警的变量。做完后自己可以试试。效果是只要出现报警。报警画面自动弹出显示报警信息。(有选模板的窗口)。
报警分为模拟量报警和离散量报警,你需要在左侧的项目的报警中编辑报警的触发位。
模拟量报警的比较好办,只需要设定报警上下限,以及触发变量就可以了。
有密码能监控状态表吗?
1、如果CPU密码保护等级为 Level 2、 Level 3 、 Level 4,监视程序状态时需要密码。
2、如果CPU密码保护等级 Level 1 ,监视程序状态时需不要密码。
3、如果CPU密码保护等级为 Level 2、 Level 3 、 Level 4,运行模式程序编辑时需要密码。
4、如果CPU密码保护等级 Level 1 ,运行模式程序编辑时需不要密码。
指针及相对寻址
LAR1
L W [AR1,P#0.0]
T #PulseDB
L D [AR1,P#2.0]
LAR1
OPN DB [#PulseDB]
请做个逐句注解,有点看不懂。
LAR1 //累加器1里的地址装载到地址寄存器1
L W [AR1,P#0.0] //装载地址寄存器偏移P# 0.0的一个字到累加器1,也就是变量#PulsePoint的第一个字装载到累加器1,Pointer类型的第一个字是DB号
T #PulseDB //把累加器1里的值(DB号)传送给变量#PulseDB
L D [AR1,P#2.0] //装载地址寄存器偏移P# 2.0的一个双字字到累加器1,也就是Pointer类型的后四个字节的区域地址
LAR1 //把累加器1里的区域地址装载到地址寄存器1
OPN DB [#PulseDB] //打开Pointer指针指向的DB块
step7 温度控制调节阀
那我这样的话可不可不用中间的过程直接用输入模块采集到的pt100信号连到输出模块4-20mA去驱动调节阀?
附:
1.规格化概念及方法:
PID参数中重要的几个变量,给定值,反馈值和输出值都是用0.0~1.0之间的实数表示,
而这几个变量在实际中都是来自与模拟输入,或者输出控制模拟量的
因此,需要将模拟输入转换为0.0~1.0的数据,或将0.0~1.0的数据转换为模拟输出,这个过程称为规格化
规格化的方法:(即变量相对所占整个值域范围内的百分比 对应与27648数字量范围内的量)
对于输入和反馈,执行:变量*100/27648,然后将结果传送到PV-IN和SP-INT
对于输出变量 ,执行:LMN*27648/100,然后将结果取整传送给PQW即可;
2.例:
输入参数:
SP_INT(给定值):0--100%的实数。
假定模块的输入变量量程为0-10Mpa,则SP_IN的范围0.0-1.00对应0-10Mpa.可以根据这一比例关系来设置给定值。例:如给定5.0Mpa
SP_INT(给定值)=5.0/(10.0-0.0)*100.0=50.0(50%)
PV_IN(过程值,即反馈值):0--100%的实数。
此值来自与阀门阀位(开度)的相应的压力反馈值。其范围0.0-1.0对应0-100%.即,当模拟量模板输入为数值为27648时则对应100%(量程的上限),数值为0时则对应0%(量程的下限)。
可以根据这一比例关系来换算PV_IN值。例:如输入数值为12000时
PV_IN(过程值,即反馈值)=12000/27648*100.0=43.403(43.403%)
输出参数:
当通过PID控制器(FB41)运算后,即得出调节值LMN_PER,该值已转化范围为0-27648的整型数值。例如经运算为43.403%,
LMN_PER=43.403*27648/100,取整后为12000,将LMN_PER送入模拟量输出模板即可.
内部区域寄存器数据监控
TAR1 DBD20// 将 AR1 中的内容传送到数据双字 DBD20。
TAR2 MD24// 将 AR2 中的内容传送到存储双字MD24。
sm0.1初始化后,vw100变量上次运行的值为什么不变0
用sm0.1做初始化,是用它的这个特性。不是说通过它调用的变量都会清零。
初始化不等于清零,可能还有赋予其他的值或者操作。
你的这个程序,只是在初始化时给SMW68赋以VW100的当前值,而VW100的值还是上次stop前执行的结果。
数据初始化除了用sm0.1之外,还可以在数据块中进行。
S7 300 触摸屏上输入定时时间,PLC里调用什么标准模块?
秒数*1000 >>得到毫秒数 >> FC40(TIM_S5TI) >> 转换得到正确地S5TIME
西门子s7-200PLC的日期和星期几怎样同步?
现在的问题是:日期时间可以正常显示、正常设置,但是显示的星期几在我的日期通过设置改变了以后不随之更新。比如今天是11年12月15日星期四,当我把日期改成12月16日,还是显示星期四。
我想问的是:当我把日期改了之后,时间缓冲区中的星期数据不会同步自动更新吗?
也有可能是你的SET_RTC和READ_RTC使用了相同的地址表,你读上来的星期字节是5(星期四)然后你只修改了日期值,没有修改星期值,又重新写回去了。这样PLC是不会判断这个星期值是否对应,只会按照你当前输入数值为基础来循环计算星期值。
这个PLC时钟在计算星期时比较简单,不是万年历。
间接寻址错误原因分析
L 1
-I
STEP 7不同版本的名词对照表,有重大变化
西门子PLC中的s与set的指令有什么区别
S是根据RLO状态来置位,SET是将 RLO 状态来置位。
1、S 置位:如果 RLO = 1,则使用置位指令(S),可以将寻址位置位为“1”
例如:
A I0.0
S Q0.0//如果I0.0为1( RLO = 1),则 Q0.0也为1;如果I0.0为0( RLO = 0),则 Q0.0也为0.。
2、SET RLO 置位:使用 RLO 置位(SET)指令,可以将 RLO 的信号状态置为“1”。
例如:
SET//将RLO 置位
=M 0.1//RLO 为1,则M 0.1也为1.
S200和计算机自由口通信,计算机使用MOXA公司的多串口卡,能实现
S200PLC串口卡引脚定义:3——DATA+(B);8——DATA-(A);5GND。
我自己焊串口线自己对换引脚。
、如果计算机采用Micro/WIN 软件与S7-200PLC通讯需要PC/PPI线缆。
2、S200PLC不能RS485总线接口和其他带RS485总线接口的设备通过自制串口线缆进行通信吗?
、如果计算机采用其他软件与S7-200PLC进行USS或 MODBUS通讯:
如果计算机只有RS232,需要RS232转RS485,转RS485后通过自制串口线缆进行通信。
如果计算机安装了485接口,有了RS485后通过自制串口线缆进行通信。
3、那么和S200PLC有关的设备通信网络全都要用PC/PPI线缆吗?
不是的。有MPI、以太网及DP总线。
西门子PLC与工业计算机通讯的应用
1、引 言
可编程控制器(PLC)由于其结构紧凑、可靠性高、编程简单、指令强大、灵活性强、能适用于比较恶劣环境等诸多优点,现已在工业控制领域得到广泛应用。现普遍采用触摸屏加plc的方法来监控设备,但触摸屏视角窄,不适应恶劣环境,且数据存储容量有限,不易实现大规模网络互联。因此我们采用plc与计算机通讯的方式实现实时监控,克服了触摸屏的缺点。
2、s7-200cpu自由口通讯方式的应用
世界知名品牌的plc很多,如西门子、欧姆龙、松下、三菱等等,本人仅以西门子s7-200小型可编程控制器的cpu22×系列为例,介绍plc在计算机网络中与计算机通讯的功能。
s7-200cpu支持多样的通讯功能,根据所使用的s7-200cpu,其网络可以支持一个或多个以下协议:
点到点(point-to-point)接口(ppi)
多点接口(multi-point)(mpi)
profibus
用户定义协议(自由口)
自由口通讯是通过用户程序可以控制s7-200cpu通讯口的操作模式。利用自由口模式,可以实现用户定义的通讯协议连接多种智能设备。通过使用接收中断、发送中断、发送指令和接收指令,用户程序控制通讯口操作。在自由口通讯模式下,通讯协议完全由用户程序控制。通过smb30(口0)允许自由口模式,而且只有在cpu处于run模式时才能允许。当cpu出于stop模式时,自由口通讯停止,通讯口转换成正常的ppi协议操作。
近年来,随着我国铁路运输环境的改善,列车速度越来越高,势必对铁道车辆提出较高的要求,其表现在对列车的舒适性和运行可靠性、安全性的要求提高,因此车辆上设备的自动化程度越来越高。自动化程度的提高,带动了网络技术在列车控制和监控上的应用。车辆网络控制、监控简图如图1所示。
整列车设有车辆级计算机,每个车厢设有本车计算机,车辆级计算机与各个本车计算机组成车辆的主网,本车计算机与本车厢内的各个设备间组成子网。plc由于其自身的优点,作为控制核心在车辆上的多种设备中得以应用,例如列车自动门的控制、列车空调机的控制等,使其可以作为整个列车网络系统中的一个节点。
3、通讯协议
siemenss7-200系列plc可以采用用户定义通讯协议(自由口)模式实现计算机与plc、plc与plc的通讯。笔者所描述的例子中,虽然车辆计算机系统和车辆上的其它设备分别是多个设备供应商的产品,但是只要制定好通讯协议,就能满足相互通讯的要求。s7-200系列的plc正是由于其自由口通讯是通过用户程序控制cpu串行通讯口的操作模式,所以可以方便地与车辆计算机通讯。
计算机(主站)每隔100ms查询plc(从站)一次,主站发出从站动作控制命令给从站,从站收到命令后发给主站应答帧,从站接收到主站发送来的一帧数据,计算出其校验码fcs,与接收到的一帧数据中的fcs比较,检查是否有数据错误。如果有数据有误,从站发送信息给主站,请求重发。
·字符结构:每个字符由11位构成,奇偶校验位采用奇校验方式。
起始位:1位;
数据: 8位 d7…d0;
奇偶校验位:1位;
停止位:1位。
·传输数据帧格式
byte(0)…byte(n)fcs
byte(0)…byte(n)为字符串;
fcs为异或校验码,是发送的所有数据字节和地址字节之异或值。
·主站命令帧结构
从站地址从站地址补码控制字节命令字节fcs
·从站应答帧结构
从站地址从站地址补码控制字节应答字节fcs
4、通讯口初始化
plc内部特殊存储器位smb30和smb130分别配置通讯端口0和1,为自由端口通讯选择波特率、奇偶校验和数据位数。自由端口的控制字节描述如下所示。
例如:在通讯协议中规定奇偶校验为奇校验、每个字符的数据为8位、波特率为19200、自由口协议,采用通讯端口0,则在plc初始化程序中将smb30赋值为0c5h。
例://串口初始化
…
network7
ldsm0.0
movb16#c5,smb30//波特率为19200奇校验//1起始位1停止位8数据位
eni//允许中断
movb2,smb34
movb20,smb35
atchint_0,8
…
由于s7-200系列plc在自由口模式下,通讯协议完全由梯形图程序或stl编辑器控制,程序可以使用接收中断、发送中断、发送指令和接收指令来控制通讯操作。cpu连续扫描用户程序,执行用户任务。plc在程序执行过程中,基于稳定、快速灵活等方面考虑,cpu每个扫描周期都通过输入输出映像寄存器来执行实际输入输出操作,即读实际输入点值到映像寄存器、写映像寄存器值到实际输出点。由于在中断中不能顺利进行数据读写操作,因此,可通过编程,利用plc循环扫描执行程序的特点,使得在程序扫描期间实现数据存储区与输入输出映像寄存器区交换数据。
在本实例中,plc上电初始化后转入接收字符中断,当上位机发出查询命令后,plc判断所发命令的地址和地址补码是否正确;如果正确判断上位机是向plc发送命令还是查询plc状态;如果执行命令则plc转入主程序执行相关命令,如果查询plc状态则将协议定义的信息发送给上位机,上位机收到信息后发送应答帧给plc。
例:interrupt0//接收开始
network1
ldnsm3.0
ab=smb2,vb0
movw+0,ac0
movd&vb600,vd638
movbsmb2,*vd638
xorwsmw1,ac0
movbac0,vb300
atchint_1,8
atchint_6,11
creti
network2
ldsm0.0
dtch8
atchint_6,10
interrupt1//接收地址补码
network1
ldnsm3.0
ansm1.0
movbsmb2,*vd638
xorwsmw1,ac0
network2
ldsm0.0
atchint_6,10
interrupt2//接收命令后判断
…
network3//发送信息
ldw=ac2,+0
ab=vb301,vb604
ab=vb603,16#00
atchint_4,10
dtch11
creti
network4
ldsm0.0
wdr
…
network7
ldsm0.0
sm31.0,1
dtch11
atchint_5,10
interrupt3//接收应答字节
network1
ldnsm3.0
ansm1.0
movbsmb2,*vd638
incdvd638
xorwsmw1,ac0
decwac2
network2
ldw=ac2,16#0000
movwac0,vw300
network3
ldsm0.0
dtch8
atchint_6,10
interrupt4//发送信息码
…
network6
ldsm0.0
movwac0,vw105
xmtvb100,0
atchint_6,9
…
interrupt5//发送应答帜
…
network9
ldsm0.0
movwac0,vw105
xmtvb100,0
rm31.0,1
atchint_6,9
…
interrupt6//转入接受中断
network1
ldsm0.0
dtch9
dtch10
dtch11
atchint_0,8
6、计算机实时数据处理
计算机程序由车辆级网络供应商提供,根据双方制定的通讯协议,通常采用vb或vc编写,在此不做详细描述。
7、结束语
从以上叙述可以看到,由车辆计算机与plc(或其它智能可编程设备)组建的车辆级实时监控系统关键在于解决计算机与plc的实时通讯、plc对车上设备状态实时监控的问题。通过这种方式组建的车辆实时监控系统,只是在原有的设备控制器软件内增加了通讯程序,所以并没有增加设备供应商的成本,因此这种监控系统的开发成本低,而且实时性好、操作简单、通用性强。再利用计算机易组网的功能,实现了整列车的实时监控,大大提供了列车行驶中的可靠性和安全性,因此这种网络系统在旅客列车、特别是高速列车上已普遍使用。
西门子PLC软冗余系统设计性能分析
1、 软冗余实现原理
典型的PLC软冗余系统组成案例如图1所示。
图1 典型的PLC软冗余系统组成
PLC软冗余系统要实现软冗余功能,需要存程序中调用冗余软件包的功能模块,其主要包括:初始化冗余系统运行参数的FCl00模块;故障诊断、主备切换的FCl02模块;发送/接收数据的FBl03模块;调用FBl03进行数据同步、分析系统状态的FBl01模块。带有冗余功能的程序结构见图2。
图2 带有冗余功能的程序结构
2、主备切换时间分析
主备切换时间是指系统发生故障到备站接替主站正常丁作所需要的时间。
2.1 主CPU或电源模块故障分析
当前2种故障发生时,ET200M站的主通信接口模块IMl53与主CPU失去连接。自动在主备通信接口模块IM]53之间实现切换。同时备CPU在向主CPU发送备站状态时将检测到同步线数据传输错误,继而主动切换成主CPU。
如果主CPU故障出现在备CPU调用FBl01执行发送功能之前,那么接下来备CPU在调用发送功能时就能检测到与主CPU通信连接故障,并在下一个周期调用接收功能时备CPU切换成主CPU。此时主备切换时间t最短。
(1)
如果主CPU故障发生时备CPU刚调用FB101执行完发送功能,那么备CPU要在下一个周期调用发送功能时才能检测到与主CPU通信连接故障,并且还要等待调用接收功能时备CPU切换成主CPU。此时主备切换时间t最长。
(2)
2.2 Profibus或ET200M主站故障分析
当后2种故障发生时,发生故障的ET200M从站的备IMl53将检测到主IMl53故障,自动将自己切换为主IMl53。主CPU将因为与故障IMl53失去连接而引发OB86(故障诊断)中断,并在中断中调用诊断模块FCl02完成所有从站的切换,并将自己置为备用。然后,主CPU将故障信息发送到备CPU。备CPU收到故障信息后将自己切换成主CPU。这时的切换时间为
(3)
式中tR为OB86中断响应时间,CPU315—2DP为1 ms;tE为OB86执行时问;ts为故障状态发送时间;tD为数据接收完毕到备站切换成主站的时间间隔。
为SFC58执行时间;t(2ss)8为2次SFC58执行时间;t’为其余时间;t(PC102)为FCl02总执行时间)。
测量结果中FCl02执行时间并不等于各个时间段之和,这是因为读系统时间功能块的测量精度只能达到l ms。但从表中仍不难看出FCl02执行时间主要集中在调用系统功能SFC58向ET200M写数据(控制从站切换)的操作上,SFC58的调用次数等于ET200M从站个数,因此可以近似得出tE=3 ms×ET200M从站个数。
式(3)中ts与主CPU的OB86中断产生的时刻有很大关系。
如果主CPU在调用FB101执行发送功能之前产生OB86中断,则在发送数据时主CPU直接把故障状态发送给备站,在这种情况下ts最短,为发送一次数据所用时间tt,即
(4)
若主CPU调用FBl01执行完发送功能时产生OB86中断,则主CPU要把先前数据发送完毕才能发送故障状态到备站。在这种情况下,由于先前数据发送完毕的时刻不同,ts也会得到不同的值。
a.若先前数据发送完毕在主CPU调州FB 101执行发送功能之前,将立即发送主站的状态,则
(5)
b.若先前数据发送完毕在主CPU执行完发送功能之后,则要等到下个周期调用发送功能时才能发送主站的故障状态。此时,ts是最长的。
(6)
式(3)中tD与备站接收完故障状态的时刻有密切关系。
若数据接收完成是在备CPU调用FBl01执行接收功能之前,则备CPU将马上得到主CPU状态,并在调用发送功能时备CPU切换成主CPU。此时tD最小,仅为一个FBl01的执行时间,即
(7)
若数据接收完成是在备CPU调用FBl01执行接收功能之后,则备CPU要等到下个周期调用接收功能时才能获得主站的状态,并在调用发送功能时切换成主CPU。此时tD是最大的。
(8)
由以上分析可知,在以下2种情况将得到这2类故障主备CPU切换时间的极限值。
a.如果故障发生后主CPU马上发送故障状态,并且备CPU接收完数据是在备CPU调用接收功能之前,主备切换时间是最短的。
(9)
b.如果故障发生时主CPU已经开始发送数据。并且此数据发送完毕是在主CPU调用完发送数据功能之后,而备CPU接收完数据是在备CPU调用完接收功能时,主备切换时问是最长的。
(10)
以上所涉及的时间中,tE、t.和k所占比重最大,其余时问经测量均约为1 ms。如果要减小主备切换时间,必须减小tE、t,和k。要减小tE就要减少ET200M从站数量,即在满足要求的情况下减少I/0数量。减少t。最好的方法是选择主站与备站之间较快的数据同步通信方式。如Profibus总线方式比西门子PLC自带的MPI方式能在较短的时间内发送更多个字节数据。但前一种方式需要另外配置通信模块。k为PLC循环扫描周期,与用户程序长度有关。典型的中等规模的PLC控制系统,经计算主备切换时间的极限值范围约为150---500 ms。
3、数据同步时间分析
在PLC软冗余系统中,要使主系统发生故障时,备系统接替主系统继续工作,则系统在正常运行时,主控制器必须把需要同步的数据发送给备控制器,从而当故障发生时能够实现无扰切换。
数据同步时间是指系统正常运行时,主站将同步数据发送至备站所需时间。西门子软冗余系统的数据同步是根据数据量的大小通过定时中断方式分多次进行,单次同步的数据量相同。主CPU在同步开始时将所有需要同步的数据保存起来,然后每次发送相同长度的数据块到备CPU。备CPU每接收到一个数据块就将其分配到对应的地址空间中去。这种方式将时间平均分配到了各个执行周期,避免了单次发送所有数据消耗过多时间。但是这也导致了备站得到的数据将滞后手主站。
*您的姓名:
*联系手机:
固话电话:
E-mail:
所在单位:
需求数量:
*咨询内容: