S7-300软冗余调试总结
- 格式:doc
- 大小:218.00 KB
- 文档页数:7
S7-300软冗余系统调试心得集成工程部张宏伟1 基本结构及工作原理1.1 基本结构硬件结构包括一对S7-300控制器及I/O、ET200从站(每个从站必须包括2个IM153-2和对应的I/O模块,必须采用有源端子板)及3个通讯(A站对分布式IO PROFIBUS-A、B 站对分布式IO PROFIBUS-B、A站对B站数据同步(MPI\PROFIBUS\Ethernet))。
软件需要STEP7 V5.x 及软冗余软件包V1.x基本结构如下图所示:图1.1 S7-300软冗余基本结构由上图可以看出,软冗余可以实现的冗余有✓主机架电源及总线冗余✓控制器冗余✓现场总线冗余1.2 工作原理在软冗余系统进行工作时,A、B控制系统(CPU、通讯、I/O)独立运行,有主系统的PLC掌握对ET200从站的I/O控制权。
A、B系统中的PLC程序有非冗余用户程序段和冗余用户程序段组成,CPU在执行冗余程序段之前会读取系统的冗余状况,若为主系统则PLC 执行全部程序,若为备用系统则跳过冗余程序段只执行非冗余用户程序。
图1.2 软冗余工作流程1.3 程序结构对于硬件组态,可采用西门子提供的冗余模板,修改CPU信号并添加ET200从站,比较简单,没有什么特别的地方,这里就不再赘述。
S7-300软冗余系统的用户程序包括非冗余程序段、用户程序段、系统诊断功能块、站间冗余数据备份等组成,一般建议将非冗余程序段写到OB1中,而冗余程序段写在OB35中。
非冗余程序段和冗余程序段与普通系统的写法一样,区别只是放置的位置不同。
在编制冗余程序的时候需要先调用FB 101 功能块,用来判断整个系统的冗余状况,在FB101 的背景DB块中可以读取到冗余连接状况和标志位。
利用冗余标志位来选择执行或者不执行冗余程序段。
因此编制冗余程序可分为4部分,如下图所示:图 1.3 软冗余程序结构首先启动系统冗余数据同步功能,根据状态字判断是否为主控制器,是否需要执行冗余程序段,若为主控制器执行冗余程序段,否则停止系统冗余程序段。
主要硬件:(注意冗余要采用有源背板、有源导轨)讯的IM153-2 冗余套件实现ET200M的冗余通讯。
硬件配置:添加两个300站点:A和B ,然后对两个站分别进行硬件配置:1.打开A站2.从硬件目录选择机架3.打开A站的机架,插入电源,插入CPU315-2DP,新建一条DP网络,DP地址为8 如下图:4.插入ET200从站,DP 地址为35.插入CP343-1,新建 Ethernet(1) 网络6 ET200从站中添加I/O模块,硬件组态完成冗余的输出地址为0-11 ,后面设置FC100要用到。
7 两个站的硬件组态要一致。
8.添加网络连接右击A站CPU(B站也行)会出现菜单,选择“添加新连接”(insert new connection),“连接类型”(connection type),我用以太网ISO-TCP协议实现冗余的,点确定。
就出现下面这个画面,这里边的ID:7 和LADDR十六进制100,也就是十进制256,后边设置FC100要用到。
注意ID(hex)0007 A050 这里是可以选择的,原来是0001 A050,改为0007 A050,这时的ID 就成了7。
因为资料上说以太网实现冗余一般Local ID 不能小于2(其他方式实现没说),所以要改一下,两个CPU的都要改一致,这个在后边设置FC100参数要用到。
A站配置完成以后,进行B站的配置,注意两个站的配置要一致。
软件的设置1.打开冗余程序库,复制里面所需的数据块到程序块里,采用以太网冗余需要复制SWR_XSEND_3002.调用FC5, FC6 在库Libraries-->SIMATIC_NET_CP-->CP 300里边可以找到。
随便一个位置调用他们,然后删除。
项目的块里就会出现这两个块了。
3.调用IEC定时器块,冗余块里的SFB3 TP是定时器块,IEC定时器分别有SFB3 TP,SFB4TON,SFB5 TOF等,把SFB4复制到项目里。
s7-300软冗余手册S7-300的软冗余要求从站必须通过有源底板连接。
从站的所有模块需要确保没有故障,即SF灯不亮尤其是通讯模块。
S7-300的软冗余分为三种方式:MPI ,DP ,以太网。
三种冗余方式的通讯速度不同,以太网通讯速度最快,DP通讯速度次之,MPI通讯速度最慢。
不同的通讯方式选择的功能块不相同,具体功能块的选择如图1所示:图1下面以以太网冗余为例,简述冗余过程:(一)插入两个S7-300的站,SIMATIC 300(A) 和SIMATIC 300(B)。
(二)设置A站的IP地址为192.168.0.10 ,B站的地址为192.168.0.20 。
(三) 在A站的块中插入OB100、OB35、OB86组织块,并对其中的OB100、OB35、OB86进行编程。
(四) 在组态网络中新建ISO-ON-TCP 链接。
要求ID 号要大于2且主从站的ID 号一致。
上图为最终效果图,下图为过程(五)在OB100中我们调用FC100’SWR_START ’进行软冗余的初始化。
FC100’SWR_START 的各个引脚的注释请参照最后的附录调用FC100的位置如图主站设置如左图所示步骤,从站不需要再次设定但需要在从站中给该从站的通讯ID 号与主站相同且大于2。
,图12345图中1表示为当前CPU的站号,A站写A,B站写B。
图中2填写对方的地址,MPI_ADR表示对方的MPI地址,LADDR表示CP通讯处理器组态的硬件地址,采用PROFIBUS或Ethernet网络进行数据同步时才有意义,默认值为256不需要更改。
VERB_ID表示网络链接的ID号,在NETPRO窗口中组态的链接的ID值,如FDL Connection、ISO Connection或S7 Connection。
数值要大于2。
DP_MASTER_SYS_ID表示DP主站网络的ID号,你可以在硬件组态中双击链接ET200M从站紫色的PROFIBUS主从网络,获取该ID值双击。
西门子PLC S7-300PID调试指南西门子PLC S7-300系列的模块配置灵活,扩展性强,通讯功能强大,为自动化控制系统提供了解决方案。
西门子PLC S7-300的编程软件是STEP7 V5.5,在编程软件中,用户可以通过PID功能块实现PID控制。
本文下面为您介绍一下西门子PLC S7-300PID调试方法,为您在程序调试中提供一些参考。
西门子PLC S7-300系列PLC的PID控制器参数整定的一般方法:PID控制器的参数整定是控制系统设计的核心内容。
它是根据被控过程的特性确定PID控制器的比例系数、积分时间和微分时间的大小。
PID控制器参数整定的方法很多,概括起来有两大类:一是理论计算整定法。
它主要是依据系统的数学模型,经过理论计算确定控制器参数。
这种方法所得到的计算数据未必可以直接用,还必须通过工程实际进行调整和修改。
二是工程整定方法。
它主要依赖工程经验,直接在控制系统的试验中进行,且方法简单、易于掌握,在工程实际中被广泛采用。
PID控制器参数的工程整定方法,主要有临界比例法、反应曲线法和衰减法。
三种方法各有其特点,其共同点都是通过试验,然后按照工程经验公式对控制器参数进行整定。
但无论采用哪一种方法所得到的控制器参数,都需要在实际运行中进行最后调整与完善。
现在一般采用的是临界比例法。
利用该方法进行PID控制器参数的整定步骤如下:(1)首先预选择一个足够短的采样周期让系统工作;(2)仅加入比例控制环节,直到系统对输入的阶跃响应出现临界振荡,记下这时的比例放大系数和临界振荡周期;(3)在一定的控制度下通过公式计算得到PID控制器的参数。
PID参数的设定:是靠经验及工艺的熟悉,参考测量值跟踪与设定值曲线,从而调整P\I\D的大小。
比例I/微分D=2,具体值可根据仪表定,再调整比例带P,P过头,到达稳定的时间长,P太短,会震荡,永远也打不到设定要求。
本文介绍了西门子PLC S7-300系列PID调试基本方法,用户可以参照本文提供的内容,对自动化控制系统进行PID调节,并最终达到稳定运行。
实验报告一、目的S7-300软冗余:利用315-2DP的MPI实现软件冗余二、条件及设备软冗余软件,两台S7-315-2DP,PROFIBUS电缆,IM153-2以及有源备板总线。
三、步骤1.运行STEP5.1,插入S7-300 STATION。
2.硬件配置:3.打开EDIT菜单,执行COPY,INSERT REDUNDANCY,生成一新S7-300STATION.编译。
4. 编程:4.1 软冗余需要使用的功能块: 在OB1 或OB35中:FB101(SWR_ZYK:在冗余程序块之前、之后都需调用;一旦调用,自动将数据从主站传递到备用站)。
在OB1或OB35中使用。
例如:CALL FB 101 , DB5 // Call of FB 101 'SWR_ZYK' with instance DBDB_WORK_NO :=DB1 // Work DB for SWRCALL_POSITION:=TRUE // Call_Position = TRUE at begin of redundant programRETURN_VAL :=MW6 // Block return valueEXT_INFO :=MW8 // Extended informationA DB5.DBX 9.1 // Check if station is MasterJC END// redundant user programL 1L MW 20+IT MW 20L 5L MW 100+IT MW 100L MW 100T DB10.DBW 0L DB10.DBW 0T MW 22//redundant user programEND: NOP 0CALL FB 101 , DB5 // Call of FB 101 'SWR_ZYK' with instance DB DB_WORK_NO :=DB1 // Work DB for SWRCALL_POSITION:=FALSE // Call_Position = FALSE at END of redundant programRETURN_VAL :=MW10 // Block return valueEXT_INFO :=MW12 // Extended information在OB100中:FC100(SWR_START,用于在OB100中,初始化两个站,如:外围输出区、位内存地址区、数据块区、静态数据块区;区域必须连续设置;需设置三个数据块用于存储内部数据)。
S7-300软冗余调试总结我用的软硬件配置:概述:本系统2个315-2DP CPU通过CP343-1连接到以太网互换机实现冗余链路,用DP通信的IM153-2 冗余套件实现ET200M的冗余通信,CP1612SIEMENS以太网卡连接到互换机实现WINCC与冗余系统的通信(听说能够直接用运算机网卡实现)。
下面介绍我整理后的实现进程:硬件配置:先添加两个站A站和B站,每一个站单独进行配置,硬件配置完后,需要增加一个冗余连接,这需要打开“网络配置”(configure network),在里边右击A站CPU(B站也行)会显现菜单,选择“添加新连接”(insert new connection),假设是两个站都配置过,这是就会显现B站的信息,而且默许已经选在了B站CPU上,你需要做的确实是在下边选择“连接类型”(connection type),我用以太网ISO-TCP协议实现冗余的,那个地址依照自己需要的类型选择就行,点OK,就显现下面那个画面,那个地址边的ID:7 和LADDR十六进制100,也确实是十进制256,后边设置FC100要用到。
注意ID(hex)0007 A050 那个地址是能够选择的,原先是0001 A050,被我改成了0007 A050,这时的ID就成了7。
因为资料上说以太网实现冗余一样Local ID 不能小于2(其他方式实现没说),因此要改一下,两个CPU的都要改一致,那个在后边设置FC100参数要用到,如此就成立了一个新的连接,在界面的下方能看到一个连接显现,另外需要注意的是假设是用DP冗余I/O那么ET200M必需两个站里都要做,而且要一模一样,DP 地址也一样。
另一个需要注意的是输出地址必需持续,那个一样的时候假设是有模拟量数字量混合的话,容易不持续,需要修改一下,改成持续的,比如我那个地址Q改成0~9,那个在后边FC100设置也要用。
硬件配置需要注意的就这些。
软件实现:要实现软冗余,需要在OB100中挪用FC100“SWR_START”,用于初始化冗余,再在OB35中挪用FB101“SWR_ZYK”来实现冗余程序和数据的同步,然后再OB86中挪用FC102“SWR_DIAG”进行诊断,那个诊断挪用必需得做。
西门子PLC S7-300PID调试指南西门子PLC S7-300系列的模块配置灵活,扩展性强,通讯功能强大,为自动化控制系统提供了解决方案。
西门子PLC S7-300的编程软件是STEP7 V5.5,在编程软件中,用户可以通过PID功能块实现PID控制。
本文下面为您介绍一下西门子PLC S7-300PID调试方法,为您在程序调试中提供一些参考。
西门子PLC S7-300系列PLC的PID控制器参数整定的一般方法:PID控制器的参数整定是控制系统设计的核心内容。
它是根据被控过程的特性确定PID控制器的比例系数、积分时间和微分时间的大小。
PID控制器参数整定的方法很多,概括起来有两大类:一是理论计算整定法。
它主要是依据系统的数学模型,经过理论计算确定控制器参数。
这种方法所得到的计算数据未必可以直接用,还必须通过工程实际进行调整和修改。
二是工程整定方法。
它主要依赖工程经验,直接在控制系统的试验中进行,且方法简单、易于掌握,在工程实际中被广泛采用。
PID控制器参数的工程整定方法,主要有临界比例法、反应曲线法和衰减法。
三种方法各有其特点,其共同点都是通过试验,然后按照工程经验公式对控制器参数进行整定。
但无论采用哪一种方法所得到的控制器参数,都需要在实际运行中进行最后调整与完善。
现在一般采用的是临界比例法。
利用该方法进行PID控制器参数的整定步骤如下:(1)首先预选择一个足够短的采样周期让系统工作;(2)仅加入比例控制环节,直到系统对输入的阶跃响应出现临界振荡,记下这时的比例放大系数和临界振荡周期;(3)在一定的控制度下通过公式计算得到PID控制器的参数。
PID参数的设定:是靠经验及工艺的熟悉,参考测量值跟踪与设定值曲线,从而调整P\I\D的大小。
比例I/微分D=2,具体值可根据仪表定,再调整比例带P,P过头,到达稳定的时间长,P太短,会震荡,永远也打不到设定要求。
本文介绍了西门子PLC S7-300系列PID调试基本方法,用户可以参照本文提供的内容,对自动化控制系统进行PID调节,并最终达到稳定运行。
s7-300常见的问题的解决方法1:使用CPU 315F和ET 200S时应如何避免出现“通讯故障”消息?使用CPU S7 315F,ET 200S以及故障安全DI/DO模块,那么您将调用OB35 的故障安全程序。
而且,您已经接受所有监控时间的默认设置值,并且愿意接收“通讯故障”消息。
OB 35 默认设置为100毫秒。
您已经将F I/O模块的F监控时间设定为100毫秒,因此至少每100毫秒要寻址一次I/O模块。
但是由于每100毫秒才调用一次OB 35,因此会发生通讯故障。
要确保OB35的扫描间隔和F监控时间有所差别,请确保F 监控时间大于OB35的扫描间隔时间。
S7分布式安全系统,一直到V5.2 SP1 和 6ES7138-4FA00-0AB0,6 ES7138-4FB00-0AB0,6ES7138-4CF00-0AB0 都会出现这个问题。
在新的模块中,F 监控时间设定为150毫秒. 2:当DP从站不可用时,PROFIBUS上S7-300 CPU的监控时间是多少?使用CPU的PROFIBUS接口上的DP从站操作PROFIBUS网络时,希望在启动期间检查期望的组态与实际的组态是否匹配。
在CPU 属性对话框中的Startup选项卡上给出了两个不同的时间。
3:如何判断电源或缓冲区出错,如:电池故障?如果电源(仅S7-400)或缓冲区中的一个错误触发一个事件,则CPU操作系统访问OB81。
错误纠正后,重新访问OB81。
电池故障情况下,如果电池检测中的BATT.INDIC开关是激活的,则 S7-400仅访问OB81。
如果没有组态OB81,则CPU不会进入操作状态STOP。
如果OB81不可用,则当电源出错时,CPU仍保持运行。
4:为S7CPU上的I/O模块(集中式或者分布式的)分配地址时应当注意哪些问题?请注意,创建的数据区域(如一个双字)不能组态在过程映象的边界上,因为在该数据块中,只有边界下面的区域能够被读入过程映像,因此不可能从过程映像访问数据。
S7-300软冗余调试总结我用的软硬件配置:概述:本系统2个315-2DP CPU通过CP343-1连接到以太网交换机实现冗余链路,用DP 通讯的IM153-2 冗余套件实现ET200M的冗余通讯,CP1612SIEMENS以太网卡连接到交换机实现WINCC与冗余系统的通讯(据说可以直接用计算机网卡实现)。
下面介绍我整理后的实现过程:硬件配置:先添加两个站A站和B站,每个站单独进行配置,硬件配置完后,需要增加一个冗余连接,这需要打开“网络配置”(configure network),在里边右击A站CPU(B站也行)会出现菜单,选择“添加新连接”(insert new connection),如果两个站都配置过,这是就会出现B站的信息,而且默认已经选在了B站CPU上,你需要做的就是在下边选择“连接类型”(connection type),我用以太网ISO-TCP协议实现冗余的,这里根据自己需要的类型选择就行,点OK,就出现下面这个画面,这里边的ID:7 和LADDR十六进制100,也就是十进制256,后边设置FC100要用到。
注意ID(hex)0007 A050 这里是可以选择的,原来是0001 A050,被我改成了0007 A050,这时的ID就成了7。
因为资料上说以太网实现冗余一般Local ID 不能小于2(其他方式实现没说),所以要改一下,两个CPU的都要改一致,这个在后边设置FC100参数要用到,这样就建立了一个新的连接,在界面的下方能看到一个连接出现,另外需要注意的是如果用DP冗余I/O那么ET200M必须两个站里都要做,而且要一模一样,DP地址也一样。
另一个需要注意的是输出地址必须连续,这个一般的时候如果有模拟量数字量混合的话,容易不连续,需要修改一下,改成连续的,比如我这里Q改为0~9,这个在后边FC100设置也要用。
硬件配置需要注意的就这些。
软件实现:要实现软冗余,需要在OB100中调用FC100“SWR_START”,用于初始化冗余,再在OB35中调用FB101“SWR_ZYK”来实现冗余程序和数据的同步,然后再OB86中调用FC102“SWR_DIAG”进行诊断,这个诊断调用必须得做。
首先打开冗余程序库,里边有所需要的数据块:这其中SWR_AGSEND_300是300以太网和DP软冗余用的,SWR_XSEND_300,是MPI 软冗余用的。
后缀是400的当然就是400软冗余用的啦。
这其中有个SFB3 TP ,这个是IEC定时器块,在软冗余程序中如果用到定时器,是不能用原来的Time定时器的,只能用IEC定时器,而且要提前算好你要用的定时器计数器的个数,后边设置FC100要用。
IEC定时器分别有SFB3 TP,SFB4 TON,SFB5 TOF等,具体功能看帮助吧。
把这里边的块都复制到你的项目里,然后还要添加两个FC,分别是这两个FC在Libraries-->SIMATIC_NET_CP-->CP300里边可以找到。
在随便一个位置调用这两个块,然后再删除它们,只要项目的Blocks里边出现这两个块就行啦!这两个块要下载到CPU的,不过不用我们手动调用,据说是FB101内部调用它们以及上边的FB104。
需要用的功能块和功能就这些啦。
下一步就是要调用这些块,来实现软冗余啦。
建议,在做冗余同步程序前,把需要冗余的程序块,数据块,都先做好,这个当然是按照设计要求来做啦,做这些程序的时候,把需要用到的DB块,DB号按连续的方式排列,比如DB40,DB41,DB42,DB43,DB44。
所有需要冗余的DB块号必须为连续的。
还有需要冗余的M内存变量地址如MB0~MB5,以及前边配置硬件时规划好的输出地址0~9。
都必须是连续的。
首先在项目中加入系统组织块OB100“complete restart”,在OB100中调用FC100“SWR_START”。
FC100的参数设置相当复杂,而且基本上出现问题都出在这里,希望大家一定要认真看这一段。
参数设置:AG_KENNUNG:这个参数是确定A、B站的,如果是A站程序,就写入“A”,B站的程序就写入“B”。
DB_WORK_NO:这里需要填入一个DB号,比如填入“DB1”,而这个DB1将来不需要手动生成,FC100会自动生成。
这个DB是实现冗余过程内部需要的数据块。
DB_SEND_NO:同上填入一个DB号,如“DB2”,同样是FC100自动生成,不需要手动生成。
可能是和下边这个DB_RCV_NO一起,都是完成数据同步作用时用的数据块吧。
DB_RCV_NO:同上填入一个DB号,如“DB3”,同样是FC100自动生成,不需要手动生成。
MPI_ADR:这个参数是对方站的MPI地址,只有用MPI方式同步的时候才有意义。
我还是按照实际CPU上边的MPI地址写上了,虽然没用,怕少了会出问题。
LADDR:CP通讯处理器组态时的硬件地址,采用DP或者以太网通讯时才用。
这个地址就是前边硬件配置中插入冗余连接的时候出现的地址LADDR 十六进制0100,或者是十进制256。
VERB_ID:这个就是我们组态硬件是,插入的冗余连接的那个ID号,被我从0001 A050改为了0007 A050,所以ID变成了7,这里就填7。
DP_MASTER_SYS_ID:这个是DP主站网络的ID号,不是DP地址号,只要在硬件组态中,双击DP线,就可以出现这个号码,如下图,这里填1。
DB_COM_NO:这个是调用FB101的时候使用的FB101的背景数据块,一般默认是DB5,我使用的是DB101,为了和FB101对应。
一定要记住,等调用FB101的时候只能用这里填写的这个DB啦!DB_KOMMUN:这个参数是连接ET200M的DP通讯口类型,如果是CPU集成的DP通讯口连接ET200M就填“1”,如果是CP通讯卡上的DP口连接ET200M填“2”。
ADR_MODUS:CPU分配I/O地址的矩阵的增量,不同CPU的地址矩阵不同。
选项是两个1:对于基本地址0,1,2,3,4……4:对于基本地址0,4,8,12….我是没看懂,填了“1”。
PAA_FIRST:冗余ET200M的第一个输出字节地址,按前边硬件配置,我填“0”。
PAA_LAST:冗余ET200M的最后一个输出字节地址,按前边硬件配置,我填“9”。
MB_NO:冗余程序需要的内存变量地址区的起始地址,按前边提到的,我填“0”。
MB_LEN:需要的内存变量区长度,以BYTE为单位,我填“6”。
IEC_NO:冗余的IEC定时器、IEC计数器,所使用的背景数据块的起始地址。
我用5个定时器,起始地址用DB200,这里只要填“200”就可以。
IEC_LEN:冗余的IEC定时器、IEC计数器的背景数据块的个数,我用5个,所以填“5”。
这里的5个背景数据块,会在调用IEC定时器时需要填写,不要忘记这里已经登记过了,不能乱写的。
另外据说这些DB 的大小不能小于2个字。
需要自己好好理解一下。
我没太明白,开始的时候出错了,我就直接在每个DB里加了个INT型变量,使它不小于2个字,反正最后没出错,能用。
也不知道是不是这里的问题。
(当时是现场调试,不求甚解,解决就行,呵呵,诸位见谅,哪位试出具体情况,还请赐教)DB_NO:冗余数据块的起始数据块,按前边说明,我填“40”,只填数字。
DB_NO_LEN:这里是填一共用了几个数据块,我用了5个,于是填“5”。
SLA VE_NO:冗余部分IM153的最低DP地址号,我的IM153设置为2,且只有一个,所以填“2”。
SLA VE_LEN:只有一个冗余DP从站,填“1”。
(这里冗余的DP从站如果不是一个,这里DP地址号要连续起来,比如2,3,4,5)。
SLA VE_DISTANCE:IM153-2的PROFIBUS地址设置的标识符,如果两个PROFIBUS接口地址一样,则填“1”,如果不同(即分别为n和n+1)则填“2”。
DB_A_B_NO:将非冗余数据从A站传送到B站,所用的发送数据DB。
将那些需要传输的数据都直接或者间接存到这个DB里,系统会自己传送。
DB_A_B_NO_LEN:上边选择的非冗余数据交换DB的数据量,就是字节数,A,B站这个参数必须一样,否则CPU停机。
DB_B_A_NO:同上,这个是从B站传到A站的DB(见过例程里边有A->B,和B->A用同一个DB的,我也用了一个,没出问题。
主要是我没有互相传送的数据,不知道有数据的时候是什么样,估计只要两个站一样应该没问题。
)DB_B_A_NO_LEN:同上RETURN_V AL:调用FC100的返回值。
(一般都用MW2,如果返回值为16#0,无故障,其他参照故障代码说明。
)EXT_INFO:FC100内部调用其他子块的返回值(一般用MW4,意义同上)下一步,在OB35中调用FB101“SWR_ZYK”,先插入OB35,然后打开OB35,用STL语言方式打开,第一次调用FB101代码如下(代码中标点为了看清楚,我改成中文标点了,可能不能复制直接使用,自己抄一遍吧):CALL "SWR_ZYK" ,DB101DB_WORK_NO :=DB1CALL_POSITION :=TRUERETURN_V AL :="FB101_ON_RETURN_V AL" MW6EXT_INFO :="FB101_ON_EXT_INF" MW8DB101,是调用FB101的背景数据块,你可以自己设定,但是这个DB必须跟FC100的参数DB_COM_NO设置的一样。
这个DB是自动生成的。
而且,这个DB的大小是根据不同的冗余同步方式而变化的,MPI同步时为194字节;如果是DP或者以太网同步时,DB的大小为358字节。
如果出现如上图错误,则可以检查此DB大小,或者将CPU停机,然后在线删除此DB,再从新生成,并下载一次。
DB_WORK_NO:DB 1,这个是FC100中调用的冗余工作DB ,必须和FC100中调用的一致。
CALL_POSITION :=TRUE,这里必须是TRUE,我用LAD调用怎么也写不上去这个TRUE,所以没办法用了STL语言调用,呵呵,比较笨!RETURN_V AL := 这个是调用FB101的返回值,一般用的是MW8EXT_INFO := 这个是FB101调用子块的返回值,一般用的是MW10启动调用完成,下边就是需要冗余的程序了。
先判断本站是否是主站,如果是主站,执行冗余程序,如果是从站,跳过冗余程序,直接执行FB101的结束调用。
用DB101.DBX9.1来判断,这个可以看背景数据块DB101的详细解释。
(我的背景数据块为DB101,你需要根据自己的背景数据块定。