西门子300PLC 软冗余的实现,详细步骤截图

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

主要硬件:(注意冗余要采用有源背板、有源导轨)

讯的IM153-2 冗余套件实现ET200M的冗余通讯。

硬件配置:

添加两个300站点:A和B ,

然后对两个站分别进行硬件配置:

1.打开A站

2.从硬件目录选择机架

3.打开A站的机架,插入电源,插入CPU315-2DP,新建一条DP网络,DP地址为8 如下图:

4.插入ET200从站,DP 地址为3

5.插入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_300

2.调用FC5, FC6 在库Libraries-->SIMATIC_NET_CP-->CP 300里边可以找到。随便一个位置调

用他们,然后删除。项目的块里就会出现这两个块了。

3.调用IEC定时器块,冗余块里的SFB3 TP是定时器块,IEC定时器分别有SFB3 TP,SFB4

TON,SFB5 TOF等,把SFB4复制到项目里。

4.把冗余需要的数据块、定时器个数及中间变量计算好。数据块号及地址必须是连续的。

5.插入背景数据块DB200-DB240,共41个数据块,作为IEC定时器

6.插入DB20-DB25共6个数据块作为冗余数据块。

7.MB20-MB74 , 55个字节。

8.插入OB35

9.插入OB86

10.插入OB82

11.插入OB100

12.插入OB121

13.插入OB122

14.在OB100里调用,用于初始化冗余在OB100中调用FC100“SWR_START”,用于初始化

冗余,再在OB35中调用FB101“SWR_ZYK”来实现冗余程序和数据的同步,然后再OB86中调用FC102“SWR_DIAG”进行诊断,这个诊断调用一定要有。

15.在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号,如“DB3”,同样是FC100自动生成,不需要手动生成。MPI_ADR:这个参数是对方站的MPI地址,只有用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,等调用FB101的时候只能用这里填写DB5.

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的最后一个输出字节地址,按前边硬件配置,“11”。

MB_NO:冗余程序需要的内存变量地址区的起始地址,按前边提到的,“20”。

MB_LEN:需要的内存变量区长度,以BYTE为单位,“55”。

IEC_NO:冗余的IEC定时器、IEC计数器,所使用的背景数据块的起始地址。我用5个定时器,起始地址用DB200,这里只要填“200”就可以。

IEC_LEN:冗余的IEC定时器、IEC计数器的背景数据块的个数,填“41”。这里的41个背景数据块,会在调用IEC定时器时需要填写,按照前面建的数据块的DB200-DB240不

能随便写。

DB_NO:冗余数据块的起始数据块,按前边说明,我填“20”,只填数字。这里的数据块不能小于两个字节,我插入数据块后随便在里面写INT 变量,使它不小于两个字节就行了,不然会出错。

DB_NO_LEN:这里是填一共用了几个数据块,填“6”。

SLAVE_NO:冗余部分IM153的最低DP地址号,我的IM153设置为3,且只有一个,所以填“3”。

SLAVE_LEN:只有一个冗余DP从站,填“1”。

SLAVE_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停机。没有用到写0

DB_B_A_NO:同上,这个是从B站传到A站的DB(见过例程里边有A->B,和B->A用同一个DB的,我也用了一个,没出问题。主要是我没有互相传送的数据,不知道有数据

的时候是什么样,估计只要两个站一样应该没问题。)

DB_B_A_NO_LEN:同上,没有用到写0

RETURN_VAL:调用FC100的返回值。

EXT_INFO:FC100内部调用其他子块的返回值

相关文档
最新文档