-
Notifications
You must be signed in to change notification settings - Fork 5
/
SUBNET.scl
1307 lines (1288 loc) · 51.6 KB
/
SUBNET.scl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
// Name: FB106
// Symbolic Name: SUBNET
// Symbol Comment: SUBNET Function Block
// Family: @SYSTEM
// Version: 7.2
// Author: DRIVER80
// Last modified: 08/02/2012
// Use: SFB35,UDT1,SFC51
// Size: 6592 bytes
// Signature: generiert vom SCL Übersetzer Version: SCLCOMP K05.03.07.00_01.02.00.01 release
{
Scl_ResetOptions ;
Scl_OverwriteBlocks:= 'y' ;
Scl_GenerateReferenceData := 'y' ;
Scl_S7ServerActive:= 'n' ;
Scl_CreateObjectCode:= 'y' ;
Scl_OptimizeObjectCode:= 'y' ;
Scl_MonitorArrayLimits:= 'n' ;
Scl_CreateDebugInfo := 'n' ;
Scl_SetOKFlag:= 'n' ;
Scl_SetMaximumStringLength:= '254'
}
FUNCTION_BLOCK FB1106
TITLE ='SUBNET Function Block'
{ S7_hardware := 'im'; S7_alarm_ui := '1'; S7_tasklist := 'OB1,OB70,OB72,OB81,OB82,OB83,OB85,OB86,OB100'; S7_tag := 'false' }
AUTHOR : DRIVER80
FAMILY : '@SYSTEM'
NAME : SUBNET
VERSION : '7.2'
VAR_INPUT
SUBN_TYP { S7_link := 'false' }: BOOL ; //1=External DP-Interface
SUBN1_ID { S7_link := 'false' }: BYTE := B#16#FF; //ID of Primary Subnet
SUBN2_ID { S7_link := 'false' }: BYTE := B#16#FF; //ID of Redundant Subnet
EN_MSG { S7_visible := 'false'; S7_link := 'false' }: BOOL := TRUE; //1=Enable Alarm
EV_ID { S7_visible := 'false'; S7_link := 'false'; S7_param := 'false'; S7_server := 'alarm_archiv'; S7_a_type := 'alarm_8p' }: DWORD ; //Event ID
MS { S7_link := 'false'; S7_m_c := 'true' }: DWORD ; //Maintenance State
END_VAR
VAR_OUTPUT
SUB_DIAG : STRUCT
SUBN1_ID : BYTE ; //ID of Primary Subnet
SUBN2_ID : BYTE ; //ID of Redundant Subnet
SUBN_TYP : BOOL ; //1=External DP-Interface
V1_MODE : BOOL ; //1= DPV1 - Mode
SUB0_ERR : BOOL ; //1= Error ID of Primary Subnet
SUB1_ERR : BOOL ; //1= Error ID of Redundant Subnet
END_STRUCT ;
O_MS { S7_visible := 'false' }: DWORD ; //Maintenance State
SUBN1ERR { S7_dynamic := 'true' }: BOOL ; //1=Subnet 1 Failure
SUBN2ERR { S7_dynamic := 'true' }: BOOL ; //1=Subnet 2 Failure
MASTER_0 { S7_dynamic := 'true' }: BOOL ; //1=Master CPU in Rack 0
MASTER_1 { S7_dynamic := 'true' }: BOOL ; //1=Master CPU in Rack 1
EN_R0 { S7_visible := 'false' }: BOOL ; //Enable Rack 0
EN_R0_ar AT EN_R0 : ARRAY[0..0] OF BOOL;
EN_R1 { S7_visible := 'false' }: BOOL ; //Enable Rack 1
EN_R2 { S7_visible := 'false' }: BOOL ; //Enable Rack 2
EN_R3 { S7_visible := 'false' }: BOOL ; //Enable Rack 3
EN_R4 { S7_visible := 'false' }: BOOL ; //Enable Rack 4
EN_R5 { S7_visible := 'false' }: BOOL ; //Enable Rack 5
EN_R6 { S7_visible := 'false' }: BOOL ; //Enable Rack 6
EN_R7 { S7_visible := 'false' }: BOOL ; //Enable Rack 7
EN_R8 { S7_visible := 'false' }: BOOL ; //Enable Rack 8
EN_R9 { S7_visible := 'false' }: BOOL ; //Enable Rack 9
EN_R10 { S7_visible := 'false' }: BOOL ; //Enable Rack 10
EN_R11 { S7_visible := 'false' }: BOOL ; //Enable Rack 11
EN_R12 { S7_visible := 'false' }: BOOL ; //Enable Rack 12
EN_R13 { S7_visible := 'false' }: BOOL ; //Enable Rack 13
EN_R14 { S7_visible := 'false' }: BOOL ; //Enable Rack 14
EN_R15 { S7_visible := 'false' }: BOOL ; //Enable Rack 15
EN_R16 { S7_visible := 'false' }: BOOL ; //Enable Rack 16
EN_R17 { S7_visible := 'false' }: BOOL ; //Enable Rack 17
EN_R18 { S7_visible := 'false' }: BOOL ; //Enable Rack 18
EN_R19 { S7_visible := 'false' }: BOOL ; //Enable Rack 19
EN_R20 { S7_visible := 'false' }: BOOL ; //Enable Rack 20
EN_R21 { S7_visible := 'false' }: BOOL ; //Enable Rack 21
EN_R22 { S7_visible := 'false' }: BOOL ; //Enable Rack 22
EN_R23 { S7_visible := 'false' }: BOOL ; //Enable Rack 23
EN_R24 { S7_visible := 'false' }: BOOL ; //Enable Rack 24
EN_R25 { S7_visible := 'false' }: BOOL ; //Enable Rack 25
EN_R26 { S7_visible := 'false' }: BOOL ; //Enable Rack 26
EN_R27 { S7_visible := 'false' }: BOOL ; //Enable Rack 27
EN_R28 { S7_visible := 'false' }: BOOL ; //Enable Rack 28
EN_R29 { S7_visible := 'false' }: BOOL ; //Enable Rack 29
EN_R30 { S7_visible := 'false' }: BOOL ; //Enable Rack 30
EN_R31 { S7_visible := 'false' }: BOOL ; //Enable Rack 31
EN_R32 { S7_visible := 'false' }: BOOL ; //Enable Rack 32
EN_R33 { S7_visible := 'false' }: BOOL ; //Enable Rack 33
EN_R34 { S7_visible := 'false' }: BOOL ; //Enable Rack 34
EN_R35 { S7_visible := 'false' }: BOOL ; //Enable Rack 35
EN_R36 { S7_visible := 'false' }: BOOL ; //Enable Rack 36
EN_R37 { S7_visible := 'false' }: BOOL ; //Enable Rack 37
EN_R38 { S7_visible := 'false' }: BOOL ; //Enable Rack 38
EN_R39 { S7_visible := 'false' }: BOOL ; //Enable Rack 39
EN_R40 { S7_visible := 'false' }: BOOL ; //Enable Rack 40
EN_R41 { S7_visible := 'false' }: BOOL ; //Enable Rack 41
EN_R42 { S7_visible := 'false' }: BOOL ; //Enable Rack 42
EN_R43 { S7_visible := 'false' }: BOOL ; //Enable Rack 43
EN_R44 { S7_visible := 'false' }: BOOL ; //Enable Rack 44
EN_R45 { S7_visible := 'false' }: BOOL ; //Enable Rack 45
EN_R46 { S7_visible := 'false' }: BOOL ; //Enable Rack 46
EN_R47 { S7_visible := 'false' }: BOOL ; //Enable Rack 47
EN_R48 { S7_visible := 'false' }: BOOL ; //Enable Rack 48
EN_R49 { S7_visible := 'false' }: BOOL ; //Enable Rack 49
EN_R50 { S7_visible := 'false' }: BOOL ; //Enable Rack 50
EN_R51 { S7_visible := 'false' }: BOOL ; //Enable Rack 51
EN_R52 { S7_visible := 'false' }: BOOL ; //Enable Rack 52
EN_R53 { S7_visible := 'false' }: BOOL ; //Enable Rack 53
EN_R54 { S7_visible := 'false' }: BOOL ; //Enable Rack 54
EN_R55 { S7_visible := 'false' }: BOOL ; //Enable Rack 55
EN_R56 { S7_visible := 'false' }: BOOL ; //Enable Rack 56
EN_R57 { S7_visible := 'false' }: BOOL ; //Enable Rack 57
EN_R58 { S7_visible := 'false' }: BOOL ; //Enable Rack 58
EN_R59 { S7_visible := 'false' }: BOOL ; //Enable Rack 59
EN_R60 { S7_visible := 'false' }: BOOL ; //Enable Rack 60
EN_R61 { S7_visible := 'false' }: BOOL ; //Enable Rack 61
EN_R62 { S7_visible := 'false' }: BOOL ; //Enable Rack 62
EN_R63 { S7_visible := 'false' }: BOOL ; //Enable Rack 63
EN_R64 { S7_visible := 'false' }: BOOL ; //Enable Rack 64
EN_R65 { S7_visible := 'false' }: BOOL ; //Enable Rack 65
EN_R66 { S7_visible := 'false' }: BOOL ; //Enable Rack 66
EN_R67 { S7_visible := 'false' }: BOOL ; //Enable Rack 67
EN_R68 { S7_visible := 'false' }: BOOL ; //Enable Rack 68
EN_R69 { S7_visible := 'false' }: BOOL ; //Enable Rack 69
EN_R70 { S7_visible := 'false' }: BOOL ; //Enable Rack 70
EN_R71 { S7_visible := 'false' }: BOOL ; //Enable Rack 71
EN_R72 { S7_visible := 'false' }: BOOL ; //Enable Rack 72
EN_R73 { S7_visible := 'false' }: BOOL ; //Enable Rack 73
EN_R74 { S7_visible := 'false' }: BOOL ; //Enable Rack 74
EN_R75 { S7_visible := 'false' }: BOOL ; //Enable Rack 75
EN_R76 { S7_visible := 'false' }: BOOL ; //Enable Rack 76
EN_R77 { S7_visible := 'false' }: BOOL ; //Enable Rack 77
EN_R78 { S7_visible := 'false' }: BOOL ; //Enable Rack 78
EN_R79 { S7_visible := 'false' }: BOOL ; //Enable Rack 79
EN_R80 { S7_visible := 'false' }: BOOL ; //Enable Rack 80
EN_R81 { S7_visible := 'false' }: BOOL ; //Enable Rack 81
EN_R82 { S7_visible := 'false' }: BOOL ; //Enable Rack 82
EN_R83 { S7_visible := 'false' }: BOOL ; //Enable Rack 83
EN_R84 { S7_visible := 'false' }: BOOL ; //Enable Rack 84
EN_R85 { S7_visible := 'false' }: BOOL ; //Enable Rack 85
EN_R86 { S7_visible := 'false' }: BOOL ; //Enable Rack 86
EN_R87 { S7_visible := 'false' }: BOOL ; //Enable Rack 87
EN_R88 { S7_visible := 'false' }: BOOL ; //Enable Rack 88
EN_R89 { S7_visible := 'false' }: BOOL ; //Enable Rack 89
EN_R90 { S7_visible := 'false' }: BOOL ; //Enable Rack 90
EN_R91 { S7_visible := 'false' }: BOOL ; //Enable Rack 91
EN_R92 { S7_visible := 'false' }: BOOL ; //Enable Rack 92
EN_R93 { S7_visible := 'false' }: BOOL ; //Enable Rack 93
EN_R94 { S7_visible := 'false' }: BOOL ; //Enable Rack 94
EN_R95 { S7_visible := 'false' }: BOOL ; //Enable Rack 95
EN_R96 { S7_visible := 'false' }: BOOL ; //Enable Rack 96
EN_R97 { S7_visible := 'false' }: BOOL ; //Enable Rack 97
EN_R98 { S7_visible := 'false' }: BOOL ; //Enable Rack 98
EN_R99 { S7_visible := 'false' }: BOOL ; //Enable Rack 99
EN_R100 { S7_visible := 'false' }: BOOL ; //Enable Rack 100
EN_R101 { S7_visible := 'false' }: BOOL ; //Enable Rack 101
EN_R102 { S7_visible := 'false' }: BOOL ; //Enable Rack 102
EN_R103 { S7_visible := 'false' }: BOOL ; //Enable Rack 103
EN_R104 { S7_visible := 'false' }: BOOL ; //Enable Rack 104
EN_R105 { S7_visible := 'false' }: BOOL ; //Enable Rack 105
EN_R106 { S7_visible := 'false' }: BOOL ; //Enable Rack 106
EN_R107 { S7_visible := 'false' }: BOOL ; //Enable Rack 107
EN_R108 { S7_visible := 'false' }: BOOL ; //Enable Rack 108
EN_R109 { S7_visible := 'false' }: BOOL ; //Enable Rack 109
EN_R110 { S7_visible := 'false' }: BOOL ; //Enable Rack 110
EN_R111 { S7_visible := 'false' }: BOOL ; //Enable Rack 111
EN_R112 { S7_visible := 'false' }: BOOL ; //Enable Rack 112
EN_R113 { S7_visible := 'false' }: BOOL ; //Enable Rack 113
EN_R114 { S7_visible := 'false' }: BOOL ; //Enable Rack 114
EN_R115 { S7_visible := 'false' }: BOOL ; //Enable Rack 115
EN_R116 { S7_visible := 'false' }: BOOL ; //Enable Rack 116
EN_R117 { S7_visible := 'false' }: BOOL ; //Enable Rack 117
EN_R118 { S7_visible := 'false' }: BOOL ; //Enable Rack 118
EN_R119 { S7_visible := 'false' }: BOOL ; //Enable Rack 119
EN_R120 { S7_visible := 'false' }: BOOL ; //Enable Rack 120
EN_R121 { S7_visible := 'false' }: BOOL ; //Enable Rack 121
EN_R122 { S7_visible := 'false' }: BOOL ; //Enable Rack 122
EN_R123 { S7_visible := 'false' }: BOOL ; //Enable Rack 123
EN_R124 { S7_visible := 'false' }: BOOL ; //Enable Rack 124
EN_R125 { S7_visible := 'false' }: BOOL ; //Enable Rack 125
EN_R126 { S7_visible := 'false' }: BOOL ; //Enable Rack 126
EN_R127 { S7_visible := 'false' }: BOOL ; //Enable Rack 127
MSG_STAT { S7_visible := 'false' }: WORD ; //Message Failure
END_VAR
VAR_IN_OUT
CPU_DIAG : STRUCT
H_MODE : BOOL ; //1= H-System
V1_MODE : BOOL ; //1= CPU DP V1 Mode
CPU_ERR0 : BOOL ; //1=CPU Error in Rack0
CPU_ERR1 : BOOL ; //1=CPU Error in Rack1
OB1_TIME : DINT ; //OB1_TIME_TCK
OB_S : STRUCT
NUM_CNT : INT ; //Counter Startinfo OB_NR
NUM_01 : BYTE ; //Startinfo OB_NO
NUM_02 : BYTE ; //Startinfo OB_NO
NUM_03 : BYTE ; //Startinfo OB_NO
NUM_04 : BYTE ; //Startinfo OB_NO
NUM_05 : BYTE ; //Startinfo OB_NO
NUM_06 : BYTE ; //Startinfo OB_NO
NUM_07 : BYTE ; //Startinfo OB_NO
NUM_08 : BYTE ; //Startinfo OB_NO
NUM_09 : BYTE ; //Startinfo OB_NO
NUM_10 : BYTE ; //Startinfo OB_NO
NUM_11 : BYTE ; //Startinfo OB_NO
NUM_12 : BYTE ; //Startinfo OB_NO
NUM_13 : BYTE ; //Startinfo OB_NO
NUM_14 : BYTE ; //Startinfo OB_NO
NUM_15 : BYTE ; //Startinfo OB_NO
NUM_16 : BYTE ; //Startinfo OB_NO
END_STRUCT ;
OB_72 : STRUCT
TOP_SI : STRUCT
EV_CLASS : BYTE ; //Event class
EV_NUM : BYTE ; //Event number
PRIORITY : BYTE ; //Priority
NUM : BYTE ; //OB-Number
TYP2_3 : BYTE ; //Reserved
TYP1 : BYTE ; //Reserved
ZI1 : WORD ; //Reserved
ZI2_3 : DWORD ; //Reserved
END_STRUCT ;
END_STRUCT ;
OB_70 : STRUCT
TOP_SI : STRUCT
EV_CLASS : BYTE ; //Event class
EV_NUM : BYTE ; //Event number
PRIORITY : BYTE ; //Priority
NUM : BYTE ; //OB-Number
TYP2_3 : BYTE ; //Reserved
TYP1 : BYTE ; //Reserved
ZI1 : WORD ; //Reserved
ZI2_3 : DWORD ; //Reserved
END_STRUCT ;
SUBNET : BYTE ; //SUBNET ID
RACK : BYTE ; //Rack Number
STATUS : DWORD ; //Status SFB 54
END_STRUCT ;
OB_82 : STRUCT
TOP_SI : STRUCT
EV_CLASS : BYTE ; //Event class
EV_NUM : BYTE ; //Event number
PRIORITY : BYTE ; //Priority
NUM : BYTE ; //OB-Number
TYP2_3 : BYTE ; //Reserved
TYP1 : BYTE ; //Reserved
ZI1 : WORD ; //Reserved
ZI2_3 : DWORD ; //Reserved
END_STRUCT ;
SUBNET : BYTE ; //SUBNET ID
RACK : BYTE ; //Rack Number
SL_TYP : BYTE ; //Slave-/Profiltyp
A_INF : BYTE ; //Alarm-Info-Type
ET_CR_FL : BYTE ; //ET-CR-Flags
ET_ER_FL : BYTE ; //ET-ER-Flags
PNO_ID : WORD ; //PROFIBUS Ident Number
AINFO : STRUCT
D_LENGTH : BYTE ; //Data Length
A_TYP : BYTE ; //Alarm Type
SLOT : BYTE ; //Slot Number
A_SPEC : BYTE ; //Alarm-Specifire
A_0 : BYTE ; //Alarm Information
A_1 : BYTE ; //Alarm Information
A_2 : BYTE ; //Alarm Information
A_3 : BYTE ; //Alarm Information
A_4 : BYTE ; //Alarm Information
A_5 : BYTE ; //Alarm Information
A_6 : BYTE ; //Alarm Information
A_7 : BYTE ; //Alarm Information
A_8 : BYTE ; //Alarm Information
A_9 : BYTE ; //Alarm Information
A_10 : BYTE ; //Alarm Information
A_11 : BYTE ; //Alarm Information
A_12 : BYTE ; //Alarm Information
A_13 : BYTE ; //Alarm Information
A_14 : BYTE ; //Alarm Information
A_15 : BYTE ; //Alarm Information
A_16 : BYTE ; //Alarm Information
A_17 : BYTE ; //Alarm Information
A_18 : BYTE ; //Alarm Information
A_19 : BYTE ; //Alarm Information
A_20 : BYTE ; //Alarm Information
A_21 : BYTE ; //Alarm Information
A_22 : BYTE ; //Alarm Information
A_23 : BYTE ; //Alarm Information
A_24 : BYTE ; //Alarm Information
A_25 : BYTE ; //Alarm Information
A_26 : BYTE ; //Alarm Information
A_27 : BYTE ; //Alarm Information
A_28 : BYTE ; //Alarm Information
A_29 : BYTE ; //Alarm Information
A_30 : BYTE ; //Alarm Information
A_31 : BYTE ; //Alarm Information
A_32 : BYTE ; //Alarm Information
A_33 : BYTE ; //Alarm Information
A_34 : BYTE ; //Alarm Information
A_35 : BYTE ; //Alarm Information
A_36 : BYTE ; //Alarm Information
A_37 : BYTE ; //Alarm Information
A_38 : BYTE ; //Alarm Information
A_39 : BYTE ; //Alarm Information
A_40 : BYTE ; //Alarm Information
A_41 : BYTE ; //Alarm Information
A_42 : BYTE ; //Alarm Information
A_43 : BYTE ; //Alarm Information
A_44 : BYTE ; //Alarm Information
A_45 : BYTE ; //Alarm Information
A_46 : BYTE ; //Alarm Information
A_47 : BYTE ; //Alarm Information
A_48 : BYTE ; //Alarm Information
A_49 : BYTE ; //Alarm Information
A_50 : BYTE ; //Alarm Information
A_51 : BYTE ; //Alarm Information
A_52 : BYTE ; //Alarm Information
A_53 : BYTE ; //Alarm Information
A_54 : BYTE ; //Alarm Information
A_55 : BYTE ; //Alarm Information
A_56 : BYTE ; //Alarm Information
A_57 : BYTE ; //Alarm Information
A_58 : BYTE ; //Alarm Information
A_59 : BYTE ; //Alarm Information
END_STRUCT ;
STATUS : DWORD ; //Status SFB 54
END_STRUCT ;
OB_83 : STRUCT
TOP_SI : STRUCT
EV_CLASS : BYTE ; //Event class
EV_NUM : BYTE ; //Event number
PRIORITY : BYTE ; //Priority
NUM : BYTE ; //OB-Number
TYP2_3 : BYTE ; //Reserved
TYP1 : BYTE ; //Reserved
ZI1 : WORD ; //Reserved
ZI2_3 : DWORD ; //Reserved
END_STRUCT ;
SUBNET : BYTE ; //SUBNET ID
RACK : BYTE ; //Rack Number
SLOT : BYTE ; //Slot Number
STATUS : DWORD ; //Status SFB 54
END_STRUCT ;
OB_85 : STRUCT
TOP_SI : STRUCT
EV_CLASS : BYTE ; //Event class
EV_NUM : BYTE ; //Event number
PRIORITY : BYTE ; //Priority
NUM : BYTE ; //OB-Number
TYP2_3 : BYTE ; //Reserved
TYP1 : BYTE ; //Reserved
ZI1 : WORD ; //Reserved
ZI2_3 : DWORD ; //Reserved
END_STRUCT ;
SUBNET : BYTE ; //SUBNET ID
RACK : BYTE ; //Rack Number
SLOT : BYTE ; //Slot Number
STATUS : DWORD ; //Status SFB 54
END_STRUCT ;
OB_86 : STRUCT
TOP_SI : STRUCT
EV_CLASS : BYTE ; //Event class
EV_NUM : BYTE ; //Event number
PRIORITY : BYTE ; //Priority
NUM : BYTE ; //OB-Number
TYP2_3 : BYTE ; //Reserved
TYP1 : BYTE ; //Reserved
ZI1 : WORD ; //Reserved
ZI2_3 : DWORD ; //Reserved
END_STRUCT ;
SUBNET : BYTE ; //SUBNET ID
RACK : BYTE ; //Rack Number
STATUS : DWORD ; //Status SFB 54
END_STRUCT ;
OB_81 : STRUCT
TOP_SI : STRUCT
EV_CLASS : BYTE ; //Event class
EV_NUM : BYTE ; //Event number
PRIORITY : BYTE ; //Priority
NUM : BYTE ; //OB-Number
TYP2_3 : BYTE ; //Reserved
TYP1 : BYTE ; //Reserved
ZI1 : WORD ; //Reserved
ZI2_3 : DWORD ; //Reserved
END_STRUCT ;
END_STRUCT ;
END_STRUCT ;
CPU_OB_5X : STRUCT
OB_55 : STRUCT
TOP_SI : STRUCT
EV_CLASS : BYTE ; //Event class
EV_NUM : BYTE ; //Event number
PRIORITY : BYTE ; //Priority
NUM : BYTE ; //OB-Number
TYP2_3 : BYTE ; //Reserved
TYP1 : BYTE ; //Reserved
ZI1 : WORD ; //Reserved
ZI2_3 : DWORD ; //Reserved
END_STRUCT ;
SUBNET : BYTE ; //SUBNET ID
RACK : BYTE ; //Rack Number
SL_TYP : BYTE ; //Slave-/Profiltyp
A_INF : BYTE ; //Alarm-Info-Type
ET_CR_FL : BYTE ; //ET-CR-Flags
ET_ER_FL : BYTE ; //ET-ER-Flags
PNO_ID : WORD ; //PROFIBUS Ident Number
AINFO : STRUCT
D_LENGTH : BYTE ; //Data Length
A_TYP : BYTE ; //Alarm Type
SLOT : BYTE ; //Slot Number
A_SPEC : BYTE ; //Alarm-Specifire
A_0 : BYTE ; //Alarm Information
A_1 : BYTE ; //Alarm Information
A_2 : BYTE ; //Alarm Information
A_3 : BYTE ; //Alarm Information
A_4 : BYTE ; //Alarm Information
A_5 : BYTE ; //Alarm Information
A_6 : BYTE ; //Alarm Information
A_7 : BYTE ; //Alarm Information
A_8 : BYTE ; //Alarm Information
A_9 : BYTE ; //Alarm Information
A_10 : BYTE ; //Alarm Information
A_11 : BYTE ; //Alarm Information
A_12 : BYTE ; //Alarm Information
A_13 : BYTE ; //Alarm Information
A_14 : BYTE ; //Alarm Information
A_15 : BYTE ; //Alarm Information
A_16 : BYTE ; //Alarm Information
A_17 : BYTE ; //Alarm Information
A_18 : BYTE ; //Alarm Information
A_19 : BYTE ; //Alarm Information
A_20 : BYTE ; //Alarm Information
A_21 : BYTE ; //Alarm Information
A_22 : BYTE ; //Alarm Information
A_23 : BYTE ; //Alarm Information
A_24 : BYTE ; //Alarm Information
A_25 : BYTE ; //Alarm Information
A_26 : BYTE ; //Alarm Information
A_27 : BYTE ; //Alarm Information
A_28 : BYTE ; //Alarm Information
A_29 : BYTE ; //Alarm Information
A_30 : BYTE ; //Alarm Information
A_31 : BYTE ; //Alarm Information
A_32 : BYTE ; //Alarm Information
A_33 : BYTE ; //Alarm Information
A_34 : BYTE ; //Alarm Information
A_35 : BYTE ; //Alarm Information
A_36 : BYTE ; //Alarm Information
A_37 : BYTE ; //Alarm Information
A_38 : BYTE ; //Alarm Information
A_39 : BYTE ; //Alarm Information
A_40 : BYTE ; //Alarm Information
A_41 : BYTE ; //Alarm Information
A_42 : BYTE ; //Alarm Information
A_43 : BYTE ; //Alarm Information
A_44 : BYTE ; //Alarm Information
A_45 : BYTE ; //Alarm Information
A_46 : BYTE ; //Alarm Information
A_47 : BYTE ; //Alarm Information
A_48 : BYTE ; //Alarm Information
A_49 : BYTE ; //Alarm Information
A_50 : BYTE ; //Alarm Information
A_51 : BYTE ; //Alarm Information
A_52 : BYTE ; //Alarm Information
A_53 : BYTE ; //Alarm Information
A_54 : BYTE ; //Alarm Information
A_55 : BYTE ; //Alarm Information
A_56 : BYTE ; //Alarm Information
A_57 : BYTE ; //Alarm Information
A_58 : BYTE ; //Alarm Information
A_59 : BYTE ; //Alarm Information
END_STRUCT ;
STATUS : DWORD ; //Status SFB 54
END_STRUCT ;
OB_56 : STRUCT
TOP_SI : STRUCT
EV_CLASS : BYTE ; //Event class
EV_NUM : BYTE ; //Event number
PRIORITY : BYTE ; //Priority
NUM : BYTE ; //OB-Number
TYP2_3 : BYTE ; //Reserved
TYP1 : BYTE ; //Reserved
ZI1 : WORD ; //Reserved
ZI2_3 : DWORD ; //Reserved
END_STRUCT ;
SUBNET : BYTE ; //SUBNET ID
RACK : BYTE ; //Rack Number
SL_TYP : BYTE ; //Slave-/Profiltyp
A_INF : BYTE ; //Alarm-Info-Type
ET_CR_FL : BYTE ; //ET-CR-Flags
ET_ER_FL : BYTE ; //ET-ER-Flags
PNO_ID : WORD ; //PROFIBUS Ident Number
AINFO : STRUCT
D_LENGTH : BYTE ; //Data Length
A_TYP : BYTE ; //Alarm Type
SLOT : BYTE ; //Slot Number
A_SPEC : BYTE ; //Alarm-Specifire
A_0 : BYTE ; //Alarm Information
A_1 : BYTE ; //Alarm Information
A_2 : BYTE ; //Alarm Information
A_3 : BYTE ; //Alarm Information
A_4 : BYTE ; //Alarm Information
A_5 : BYTE ; //Alarm Information
A_6 : BYTE ; //Alarm Information
A_7 : BYTE ; //Alarm Information
A_8 : BYTE ; //Alarm Information
A_9 : BYTE ; //Alarm Information
A_10 : BYTE ; //Alarm Information
A_11 : BYTE ; //Alarm Information
A_12 : BYTE ; //Alarm Information
A_13 : BYTE ; //Alarm Information
A_14 : BYTE ; //Alarm Information
A_15 : BYTE ; //Alarm Information
A_16 : BYTE ; //Alarm Information
A_17 : BYTE ; //Alarm Information
A_18 : BYTE ; //Alarm Information
A_19 : BYTE ; //Alarm Information
A_20 : BYTE ; //Alarm Information
A_21 : BYTE ; //Alarm Information
A_22 : BYTE ; //Alarm Information
A_23 : BYTE ; //Alarm Information
A_24 : BYTE ; //Alarm Information
A_25 : BYTE ; //Alarm Information
A_26 : BYTE ; //Alarm Information
A_27 : BYTE ; //Alarm Information
A_28 : BYTE ; //Alarm Information
A_29 : BYTE ; //Alarm Information
A_30 : BYTE ; //Alarm Information
A_31 : BYTE ; //Alarm Information
A_32 : BYTE ; //Alarm Information
A_33 : BYTE ; //Alarm Information
A_34 : BYTE ; //Alarm Information
A_35 : BYTE ; //Alarm Information
A_36 : BYTE ; //Alarm Information
A_37 : BYTE ; //Alarm Information
A_38 : BYTE ; //Alarm Information
A_39 : BYTE ; //Alarm Information
A_40 : BYTE ; //Alarm Information
A_41 : BYTE ; //Alarm Information
A_42 : BYTE ; //Alarm Information
A_43 : BYTE ; //Alarm Information
A_44 : BYTE ; //Alarm Information
A_45 : BYTE ; //Alarm Information
A_46 : BYTE ; //Alarm Information
A_47 : BYTE ; //Alarm Information
A_48 : BYTE ; //Alarm Information
A_49 : BYTE ; //Alarm Information
A_50 : BYTE ; //Alarm Information
A_51 : BYTE ; //Alarm Information
A_52 : BYTE ; //Alarm Information
A_53 : BYTE ; //Alarm Information
A_54 : BYTE ; //Alarm Information
A_55 : BYTE ; //Alarm Information
A_56 : BYTE ; //Alarm Information
A_57 : BYTE ; //Alarm Information
A_58 : BYTE ; //Alarm Information
A_59 : BYTE ; //Alarm Information
END_STRUCT ;
STATUS : DWORD ; //Status SFB 54
END_STRUCT ;
OB_57 : STRUCT
TOP_SI : STRUCT
EV_CLASS : BYTE ; //Event class
EV_NUM : BYTE ; //Event number
PRIORITY : BYTE ; //Priority
NUM : BYTE ; //OB-Number
TYP2_3 : BYTE ; //Reserved
TYP1 : BYTE ; //Reserved
ZI1 : WORD ; //Reserved
ZI2_3 : DWORD ; //Reserved
END_STRUCT ;
SUBNET : BYTE ; //SUBNET ID
RACK : BYTE ; //Rack Number
SL_TYP : BYTE ; //Slave-/Profiltyp
A_INF : BYTE ; //Alarm-Info-Type
ET_CR_FL : BYTE ; //ET-CR-Flags
ET_ER_FL : BYTE ; //ET-ER-Flags
PNO_ID : WORD ; //PROFIBUS Ident Number
AINFO : STRUCT
D_LENGTH : BYTE ; //Data Length
A_TYP : BYTE ; //Alarm Type
SLOT : BYTE ; //Slot Number
A_SPEC : BYTE ; //Alarm-Specifire
A_0 : BYTE ; //Alarm Information
A_1 : BYTE ; //Alarm Information
A_2 : BYTE ; //Alarm Information
A_3 : BYTE ; //Alarm Information
A_4 : BYTE ; //Alarm Information
A_5 : BYTE ; //Alarm Information
A_6 : BYTE ; //Alarm Information
A_7 : BYTE ; //Alarm Information
A_8 : BYTE ; //Alarm Information
A_9 : BYTE ; //Alarm Information
A_10 : BYTE ; //Alarm Information
A_11 : BYTE ; //Alarm Information
A_12 : BYTE ; //Alarm Information
A_13 : BYTE ; //Alarm Information
A_14 : BYTE ; //Alarm Information
A_15 : BYTE ; //Alarm Information
A_16 : BYTE ; //Alarm Information
A_17 : BYTE ; //Alarm Information
A_18 : BYTE ; //Alarm Information
A_19 : BYTE ; //Alarm Information
A_20 : BYTE ; //Alarm Information
A_21 : BYTE ; //Alarm Information
A_22 : BYTE ; //Alarm Information
A_23 : BYTE ; //Alarm Information
A_24 : BYTE ; //Alarm Information
A_25 : BYTE ; //Alarm Information
A_26 : BYTE ; //Alarm Information
A_27 : BYTE ; //Alarm Information
A_28 : BYTE ; //Alarm Information
A_29 : BYTE ; //Alarm Information
A_30 : BYTE ; //Alarm Information
A_31 : BYTE ; //Alarm Information
A_32 : BYTE ; //Alarm Information
A_33 : BYTE ; //Alarm Information
A_34 : BYTE ; //Alarm Information
A_35 : BYTE ; //Alarm Information
A_36 : BYTE ; //Alarm Information
A_37 : BYTE ; //Alarm Information
A_38 : BYTE ; //Alarm Information
A_39 : BYTE ; //Alarm Information
A_40 : BYTE ; //Alarm Information
A_41 : BYTE ; //Alarm Information
A_42 : BYTE ; //Alarm Information
A_43 : BYTE ; //Alarm Information
A_44 : BYTE ; //Alarm Information
A_45 : BYTE ; //Alarm Information
A_46 : BYTE ; //Alarm Information
A_47 : BYTE ; //Alarm Information
A_48 : BYTE ; //Alarm Information
A_49 : BYTE ; //Alarm Information
A_50 : BYTE ; //Alarm Information
A_51 : BYTE ; //Alarm Information
A_52 : BYTE ; //Alarm Information
A_53 : BYTE ; //Alarm Information
A_54 : BYTE ; //Alarm Information
A_55 : BYTE ; //Alarm Information
A_56 : BYTE ; //Alarm Information
A_57 : BYTE ; //Alarm Information
A_58 : BYTE ; //Alarm Information
A_59 : BYTE ; //Alarm Information
END_STRUCT ;
STATUS : DWORD ; //Status SFB 54
END_STRUCT ;
END_STRUCT ;
SZL_71 { S7_visible := 'false' }: STRUCT
REDINF : WORD ; //16#11= Single H-CPU, 16#12 =1v2 H-System
MW_RES0 : BOOL ; //Reserved
MW_RES1 : BOOL ; //Reserved
MW_RES2 : BOOL ; //Reserved
MW_RES3 : BOOL ; //Reserved
MASTER_0 : BOOL ; //1=Master CPU in Rack0
MASTER_1 : BOOL ; //1=Master CPU in Rack1
MW_RES6 : BOOL ; //Reserved
MW_RES7 : BOOL ; //Reserved
MW2_SYN : BOOL ; //Reserved
MW2_RES1 : BOOL ; //Reserved
MW2_RES2 : BOOL ; //Reserved
MW2_RES3 : BOOL ; //Reserved
CPU_RAC0 : BOOL ; //1=CPU in Rack0 (solo mode)
CPU_RAC1 : BOOL ; //1=CPU in Rack1 (solo mode)
MW2_RES6 : BOOL ; //Reserved
MW2_RES7 : BOOL ; //Reserved
HSFCINFO : WORD ; //Info word for SFC90 "H_CTRL"
CPU_ERR0 : BOOL ; //1=CPU Error in Rack0
CPU_ERR1 : BOOL ; //1=CPU Error in Rack1
S_RES2 : BOOL ; //Reserved
S_RES3 : BOOL ; //Reserved
FO_ERROR : BOOL ; //1= FO cable link up error
S_RES5 : BOOL ; //Reserved
S_RES6 : BOOL ; //Reserved
S_RES7 : BOOL ; //Reserved
S_RES : BYTE ; //Reserved
BZ_CPU_0 : WORD ; //Mode of CPU in Rack 0
BZ_CPU_1 : WORD ; //Mode of CPU in Rack 1
BZ_CPU_2 : WORD ; //Reserved
CPU_VALID : BYTE ; //1=BZ_CPU_0 valid, 2=BZ_CPU_1 valid, 3=BZ_CPU_0 + BZ_CPU_1 valid
CPU_RES : BYTE ; //Reserved
END_STRUCT ;
ACC_ID { S7_link := 'false' }: BOOL ; //1=Accept New ID Settings
END_VAR
VAR
sdwRESERVE : DWORD ; //Reserve fьr zukьnftige Дnderungen
sdwRESERVE_bool AT sdwRESERVE : ARRAY[0..31] OF BOOL;
OB86_CNT : INT ; //OB86 Aufrufzдhler
LOCK_86_TM : DINT ; //Wartezeit OB86
sbRESTART : BOOL := TRUE; //Erstlauf Merker
OB1_ALRM : BOOL ; //ALARM_8P aufruf im OB1
M1ERR : BOOL ; //1=Fehler in Master 1
M2ERR : BOOL ; //1=Fehler in Master 2
M1REDF : BOOL ; //1=Master 2 verfьgbar
M2REDF : BOOL ; //1=Master 1 verfьgbar
s_ir : BOOL ; //Unterbrechung eines OB durch einen anderen ( Merker Ablaufebenenwechsel ) 7.8.2
ASIG0 : BYTE ;
ASIG0_bool AT ASIG0 : ARRAY[0..7] OF BOOL;
sbASIG0 : BYTE ;
sbASIG0_bool AT sbASIG0 : ARRAY[0..7] OF BOOL;
DUMMY : DWORD ;
SUBN_ID : BYTE ;
CPU_RACK : BYTE ;
ALARM_8P_1 : SFB35; //Multiinstanzierte _8P
END_VAR
VAR_TEMP
EN_ALRM : BOOL ; //Freigabe des ALARM_8P
RETURN_CODE : INT ; //SZL-Returnwert bzw. Fehlercode und Zдhlervariable
PER_ADR : WORD ;
PER_ADR_byte AT PER_ADR : ARRAY[0..1] OF BYTE;
OB_START : WORD ;
OB_START_bool AT OB_START : ARRAY[0..15] OF BOOL;
pbEN_Rxx : ARRAY [0 .. 127 ] OF BOOL ; //Temporдre SUBNET Ausgдnge: EN_Rxx
pbEN_Rxx_dw AT pbEN_Rxx : ARRAY [0..3] OF DWORD;
pbEN_ALT : BOOL ; //Flag: Instanz EN_xx ьbernehmen
CPU_ERR0 : BOOL ;
CPU_ERR1 : BOOL ;
H_MODE : BOOL ;
ZI2_3 : DWORD ;
SZL_HEADER : STRUCT
LENTHDR : WORD ;
N_DR : WORD ;
END_STRUCT ;
GEO : STRUCT
SUBNET : BYTE ;
RACK : BYTE ;
SLOT : BYTE ;
RESERVE : ARRAY [0 .. 12 ] OF BYTE ;
END_STRUCT ;
DP_MASTER_INF : STRUCT
dp_m_id : BYTE ;
rack_dp_m : BYTE ;
slot_dp_m : BYTE ;
subm_dp_m : BYTE ;
logadr : WORD ;
dp_m_sys_cpu : WORD ;
dp_m_sys_dpm : WORD ;
dp_m_state : ARRAY [0 .. 7 ] OF BOOL ;
res1 : BYTE ;
res2 : BYTE ;
res3 : BYTE ;
END_STRUCT ;
TOP_SI : STRUCT
EV_CLASS : BYTE ;
EV_NUM : BYTE ;
PRIORITY : BYTE ;
NUM : BYTE ;
TYP2_3 : BYTE ;
TYP1 : BYTE ;
ZI1 : WORD ;
ZI2_3 : DWORD ;
END_STRUCT ;
DEL_CNT : DINT ;
MS_AS : DWORD ; //Maintenance State AS
STAT_ZUST0 : ARRAY [0 .. 3 ] OF //Stationszustand des DP Masters 0 ermittlen bei Neustart oder ReduRьckkehr
DWORD ; //Stationszustand des DP Masters 0 ermittlen bei Neustart oder ReduRьckkehr
STAT_ZUST1 : ARRAY [0 .. 3 ] OF //Stationszustand des DP Masters 1 ermittlen bei Neustart oder ReduRьckkehr
DWORD ; //Stationszustand des DP Masters 1 ermittlen bei Neustart oder ReduRьckkehr
ZI1 : WORD ;
END_VAR
BEGIN
OB_START:=W#16#0;
pbEN_ALT:=OK;
CASE CPU_DIAG.OB_S.NUM_CNT OF
1 :
TOP_SI.NUM:=CPU_DIAG.OB_S.NUM_01;
pbEN_ALT:=false;
2 :
TOP_SI.NUM:=CPU_DIAG.OB_S.NUM_02;
IF CPU_DIAG.OB_S.NUM_01=1 THEN
pbEN_ALT:=false;
END_IF;
3 :
TOP_SI.NUM:=CPU_DIAG.OB_S.NUM_03;
4 :
TOP_SI.NUM:=CPU_DIAG.OB_S.NUM_04;
5 :
TOP_SI.NUM:=CPU_DIAG.OB_S.NUM_05;
6 :
TOP_SI.NUM:=CPU_DIAG.OB_S.NUM_06;
7 :
TOP_SI.NUM:=CPU_DIAG.OB_S.NUM_07;
8 :
TOP_SI.NUM:=CPU_DIAG.OB_S.NUM_08;
9 :
TOP_SI.NUM:=CPU_DIAG.OB_S.NUM_09;
10 :
TOP_SI.NUM:=CPU_DIAG.OB_S.NUM_10;
11 :
TOP_SI.NUM:=CPU_DIAG.OB_S.NUM_11;
12 :
TOP_SI.NUM:=CPU_DIAG.OB_S.NUM_12;
13 :
TOP_SI.NUM:=CPU_DIAG.OB_S.NUM_13;
14 :
TOP_SI.NUM:=CPU_DIAG.OB_S.NUM_14;
15 :
TOP_SI.NUM:=CPU_DIAG.OB_S.NUM_15;
16 :
TOP_SI.NUM:=CPU_DIAG.OB_S.NUM_16;
ELSE;
END_CASE;
IF TOP_SI.NUM=B#16#1 THEN
OB_START_bool[6]:=true;
ELSIF TOP_SI.NUM=B#16#55 THEN
OB_START_bool[4]:=true;
GEO.SUBNET:=CPU_DIAG.OB_85.SUBNET;
GEO.RACK:=CPU_DIAG.OB_85.RACK;
ELSIF TOP_SI.NUM=B#16#52 THEN
OB_START_bool[2]:=true;
GEO.SUBNET:=CPU_DIAG.OB_82.SUBNET;
GEO.RACK:=CPU_DIAG.OB_82.RACK;
ELSIF TOP_SI.NUM=B#16#56 THEN
OB_START_bool[5]:=true;
GEO.SUBNET:=CPU_DIAG.OB_86.SUBNET;
GEO.RACK:=CPU_DIAG.OB_86.RACK;
ZI2_3:=CPU_DIAG.OB_86.TOP_SI.ZI2_3;
TOP_SI.EV_NUM:=CPU_DIAG.OB_86.TOP_SI.EV_NUM;
CPU_ERR0:=CPU_DIAG.CPU_ERR0;
CPU_ERR1:=CPU_DIAG.CPU_ERR1;
ELSIF TOP_SI.NUM=B#16#53 THEN
OB_START_bool[3]:=true;
GEO.SUBNET:=CPU_DIAG.OB_83.SUBNET;
GEO.RACK:=CPU_DIAG.OB_83.RACK;
ELSIF TOP_SI.NUM=B#16#64 THEN
OB_START_bool[7]:=true;
ELSIF TOP_SI.NUM=B#16#46 THEN
OB_START_bool[0]:=true;
GEO.SUBNET:=CPU_DIAG.OB_70.SUBNET;
GEO.RACK:=CPU_DIAG.OB_70.RACK;
TOP_SI.EV_NUM:=CPU_DIAG.OB_70.TOP_SI.EV_NUM;
TOP_SI.EV_CLASS:=CPU_DIAG.OB_70.TOP_SI.EV_CLASS;
CPU_ERR0:=CPU_DIAG.CPU_ERR0;
CPU_ERR1:=CPU_DIAG.CPU_ERR1;
ELSIF TOP_SI.NUM=B#16#48 THEN
OB_START_bool[1]:=true;
CPU_ERR0:=CPU_DIAG.CPU_ERR0;
CPU_ERR1:=CPU_DIAG.CPU_ERR1;
H_MODE:=CPU_DIAG.H_MODE;
ELSIF TOP_SI.NUM=B#16#51 THEN
OB_START_bool[8]:=true;
GEO.SUBNET:=0;
IF BYTE_TO_INT(CPU_DIAG.OB_81.TOP_SI.EV_NUM)<48 THEN
IF BYTE_TO_INT(CPU_DIAG.OB_81.TOP_SI.EV_NUM)<37 THEN
GEO.RACK:=0;
ELSE
IF (CPU_DIAG.OB_81.TOP_SI.ZI1 AND W#16#100) = W#16#0 THEN
GEO.RACK:=0;
ELSE
GEO.RACK:=1;
END_IF;
END_IF;
ELSE
GEO.RACK:=B#16#FF;
ZI2_3:=CPU_DIAG.OB_81.TOP_SI.ZI2_3;
END_IF;
ELSIF TOP_SI.NUM=B#16#37 THEN
OB_START_bool[2]:=true;
GEO.SUBNET:=CPU_OB_5X.OB_55.SUBNET;
GEO.RACK:=CPU_OB_5X.OB_55.RACK;
ELSIF TOP_SI.NUM=B#16#38 THEN
OB_START_bool[2]:=true;
GEO.SUBNET:=CPU_OB_5X.OB_56.SUBNET;
GEO.RACK:=CPU_OB_5X.OB_56.RACK;
ELSIF TOP_SI.NUM=B#16#39 THEN
OB_START_bool[2]:=true;
GEO.SUBNET:=CPU_OB_5X.OB_57.SUBNET;
GEO.RACK:=CPU_OB_5X.OB_57.RACK;
ELSE;
END_IF;
IF sbRESTART THEN
OB_START_bool[7]:=true;
sbRESTART:=false;
END_IF;
MS_AS:=MS AND DW#16#FF010000;
IF OB_START_bool[6] OR OB_START_bool[7] THEN
IF ACC_ID OR OB_START_bool[7] THEN
ACC_ID:=false;
IF OB_START_bool[7] THEN
sdwRESERVE_bool[24]:=true;
sdwRESERVE_bool[25]:=true;
IF SUBN1_ID<>B#16#FF THEN
PER_ADR_byte[1]:=SUBN1_ID;
ELSE
PER_ADR_byte[1]:=SUBN2_ID;
END_IF;
IF SUBN1_ID=B#16#0 AND SUBN2_ID=B#16#0 THEN
IF CPU_DIAG.H_MODE THEN
MS_AS:=MS_AS OR DW#16#10000;
ELSE
MS_AS:=MS_AS AND DW#16#FFFEFFFF;
END_IF;
ELSE
IF SUBN1_ID<>B#16#FF AND SUBN2_ID<>B#16#FF THEN
MS_AS:=MS_AS OR DW#16#10000;
ELSE
MS_AS:=MS_AS AND DW#16#FFFEFFFF;
END_IF;
END_IF;
PER_ADR_byte[0]:=B#16#0;
pbEN_ALT:=false;
REPEAT
RETURN_CODE:=RDSYSST(REQ := true
,SZL_ID := W#16#190
,INDEX := PER_ADR
,BUSY := pbEN_ALT
,SZL_HEADER := SZL_HEADER
,DR := DP_MASTER_INF
);
UNTIL NOT pbEN_ALT
END_REPEAT;
CPU_DIAG.V1_MODE:=CPU_DIAG.V1_MODE OR DP_MASTER_INF.dp_m_state[0];
SUB_DIAG.V1_MODE:=DP_MASTER_INF.dp_m_state[0];
END_IF;
SUB_DIAG.SUBN_TYP:=SUBN_TYP;
SUB_DIAG.SUBN1_ID:=SUBN1_ID;
SUB_DIAG.SUBN2_ID:=SUBN2_ID;
M1ERR:=false;
M2ERR:=false;
M1REDF:=false;
M2REDF:=false;
sbASIG0:=B#16#0;
ASIG0:=B#16#0;
EN_ALRM:=true;
ELSE;
END_IF;
IF OB_START_bool[6] THEN
OB86_CNT:=0;
IF ASIG0_bool[4] THEN
DEL_CNT:=CPU_DIAG.OB1_TIME-LOCK_86_TM;
IF DEL_CNT<0 THEN
DEL_CNT:=DEL_CNT+1879048192;
DEL_CNT:=DEL_CNT+268435456;
END_IF;
ASIG0_bool[4]:=DEL_CNT<=10000;
END_IF;
ACC_ID:=ASIG0_bool[4]<>sbASIG0_bool[4] OR ACC_ID;
END_IF;
pbEN_Rxx_dw[0]:=DW#16#FFFFFFFF;
pbEN_Rxx_dw[1]:=DW#16#FFFFFFFF;
pbEN_Rxx_dw[2]:=DW#16#FFFFFFFF;
pbEN_Rxx_dw[3]:=DW#16#FFFFFFFF;
IF SUBN_TYP THEN
ZI1:=W#16#4292;
ELSE
ZI1:=W#16#292;
END_IF;
IF NOT CPU_DIAG.CPU_ERR0 AND sdwRESERVE_bool[24] AND SUBN1_ID<>0 AND SUBN1_ID<>B#16#FF THEN
REPEAT
RETURN_CODE:=RDSYSST(REQ := true
,SZL_ID := ZI1
,INDEX := BYTE_TO_WORD(SUBN1_ID)
,BUSY := sdwRESERVE_bool[24]
,SZL_HEADER := SZL_HEADER
,DR := STAT_ZUST0
);
UNTIL NOT OB_START_bool[7] OR NOT sdwRESERVE_bool[24]
END_REPEAT;
IF NOT sdwRESERVE_bool[24] THEN
IF RETURN_CODE=0 THEN
IF (STAT_ZUST0[0] OR
STAT_ZUST0[1] OR
STAT_ZUST0[2] OR
STAT_ZUST0[3]) = DW#16#0
THEN
M1ERR:=true;
M1REDF:= NOT (M2ERR OR CPU_ERR1) AND SUB_DIAG.SUBN2_ID<>B#16#FF;
IF NOT (SUB_DIAG.SUBN1_ID=B#16#0 OR SUB_DIAG.SUBN2_ID=B#16#0) THEN
ASIG0_bool[0]:=M1ERR AND M1REDF AND NOT M2ERR;
ASIG0_bool[2]:=NOT M1REDF AND M1ERR;
ASIG0_bool[1]:=M2ERR AND M2REDF AND NOT M1ERR;
ASIG0_bool[3]:=NOT M2REDF AND M2ERR;
END_IF;
EN_ALRM:=ASIG0<>sbASIG0;
ELSE
M1ERR:=false;
IF NOT
(SUB_DIAG.SUBN1_ID=B#16#0 OR
SUB_DIAG.SUBN2_ID=B#16#0)
THEN
ASIG0_bool[0]:=M1ERR AND M1REDF AND NOT M2ERR;
ASIG0_bool[2]:=NOT M1REDF AND M1ERR;
ASIG0_bool[1]:=M2ERR AND M2REDF AND NOT M1ERR;
ASIG0_bool[3]:=NOT M2REDF AND M2ERR;
END_IF;
EN_ALRM:=ASIG0<>sbASIG0;
END_IF;
ELSE
IF RETURN_CODE=-32635 THEN
sdwRESERVE_bool[24]:=true;
END_IF;
END_IF;
END_IF;
END_IF;
IF NOT CPU_DIAG.CPU_ERR1 AND