-> Hier kostenlos registrieren
Hallo S5 Programierer,
ich habe ein Problem beim Übersetzen eines S5 Programms nach S7.
Die Anschaltung des FB den ich übersetzten möchte sieht so aus:
Der Inhalt des FB 107 lautet:
Mein Problem beim übersetzten nach S7 liegt darin, das ich nicht weiß, was der Befehl in Zeile 0038 bzw. 0068 bedeutet.
- wenn dies ein Aufruf der Variable DW 6 sein soll, warum ist dann die
Zeile LW =IN.davor?
- wenn dies ein Transfer sein soll, warum wird dann in Zeile 32 das
DW 6 beschrieben?
Oder passiert estwas indirekt, wovon ich keine Ahnung habe.
Vielen Dank für Eure Mithilfe schon mal im Voraus!!!
Dirk
ich habe ein Problem beim Übersetzen eines S5 Programms nach S7.
Die Anschaltung des FB den ich übersetzten möchte sieht so aus:
Code:
[FONT=Courier New] FB 107[/FONT]
[FONT=Courier New] +--------------+[/FONT]
[FONT=Courier New] ! SET ![/FONT]
[FONT=Courier New] M 16.4 --!RES ![/FONT]
[FONT=Courier New] +60 --!STA ![/FONT]
[FONT=Courier New] +35 --!LEN ![/FONT]
[FONT=Courier New] DB 50 --!DB ![/FONT]
[FONT=Courier New]11111111 11111111 --!IN ![/FONT]
[FONT=Courier New]11111111 11111111 --!OUT ![/FONT]
[FONT=Courier New] +--------------+[/FONT]
Der Inhalt des FB 107 lautet:
Code:
[FONT=Courier New]0001 FB 107[/FONT]
[FONT=Courier New]0002 Netzwerk 1[/FONT]
[FONT=Courier New]0003[/FONT]
[FONT=Courier New]0004 Name :SET SET FLAG-WORD(S) TO FFFF[/FONT]
[FONT=Courier New]0005 Bez :RES E/A/D/B/T/Z: E BI/BY/W/D: BI[/FONT]
[FONT=Courier New]0006 Bez :STA E/A/D/B/T/Z: D KM/KH/KY/KC/KF/KT/KZ/KG: KF[/FONT]
[FONT=Courier New]0007 Bez :LEN E/A/D/B/T/Z: D KM/KH/KY/KC/KF/KT/KZ/KG: KF[/FONT]
[FONT=Courier New]0008 Bez :DB E/A/D/B/T/Z: B[/FONT]
[FONT=Courier New]0009 Bez :IN E/A/D/B/T/Z: D KM/KH/KY/KC/KF/KT/KZ/KG: KM[/FONT]
[FONT=Courier New]0010 Bez :OUT E/A/D/B/T/Z: D KM/KH/KY/KC/KF/KT/KZ/KG: KM[/FONT]
[FONT=Courier New]0011 ;[/FONT]
[FONT=Courier New]0012 ; ******************************>[/FONT]
[FONT=Courier New]0013 : * DESCRIPTION >[/FONT]
[FONT=Courier New]0014 : ******************************>[/FONT]
[FONT=Courier New]0015 : * RES = TROUBLE RESET >[/FONT]
[FONT=Courier New]0016 : * STA = 1.FLAG-WORD ADDRESS >[/FONT]
[FONT=Courier New]0017 : * LEN = LENGTH OF FLAG-WORDS >[/FONT]
[FONT=Courier New]0018 : * DB = DATA-BASE FOR MATHEM.>[/FONT]
[FONT=Courier New]0019 : * IN = CODE FOR FIRST >[/FONT]
[FONT=Courier New]0020 : * FLAG-WORD >[/FONT]
[FONT=Courier New]0021 : * OUT = CODE FOR LAST >[/FONT]
[FONT=Courier New]0022 : * FLAG-WORD >[/FONT]
[FONT=Courier New]0023 : ******************************>[/FONT]
[FONT=Courier New]Netzwerk 2 TROUBLE RESET[/FONT]
[FONT=Courier New]0024 :[/FONT]
[FONT=Courier New]0025 :UN =RES IF NO "RES" THEN[/FONT]
[FONT=Courier New]0026 :SPB =M001 JUMP TO LABEL M001[/FONT]
[FONT=Courier New]0027 :[/FONT]
[FONT=Courier New]0028 :B =DB OPEN DATA-BASE[/FONT]
[FONT=Courier New]0030 :[/FONT]
[FONT=Courier New]0031 :LW =STA SAVE 1.FLAG-WORD ADDRESS[/FONT]
[FONT=Courier New]0032 :T DW 6[/FONT]
[FONT=Courier New]0033 :[/FONT]
[FONT=Courier New]0034 :LW =LEN SAVE LENGTH OF FLAG-WORD(S)[/FONT]
[FONT=Courier New]0035 :T DW 7[/FONT]
[FONT=Courier New]0036 :[/FONT]
[FONT=Courier New]0037 :LW =IN LOAD CODE FOR FIRST FLAG-WORD[/FONT]
[FONT=Courier New]0038 :B DW 6 USE ADDRESS OF 1.FLAG-WORD[/FONT]
[FONT=Courier New]0039 :L MW 0 AND LOAD 1.FLAG-WORD[/FONT]
[FONT=Courier New]0040 :OW[/FONT]
[FONT=Courier New]0041 :B DW 6 USE ADDRESS OF 1.FLAG-WORD[/FONT]
[FONT=Courier New]0042 :T MW [/FONT][FONT=Courier New]0 AND TRANSFER TO 1.FLAG-WORD[/FONT]
[FONT=Courier New]0043 :[/FONT]
[FONT=Courier New]0044 :L DW 7 IF LENGTH OF FLAG-WORD(S) <= 1[/FONT]
[FONT=Courier New]0045 :L KH 0001 (ONLY ONE FLAG-WORD TO TRANSFE>[/FONT]
[FONT=Courier New]0046 :<=F THEN[/FONT]
[FONT=Courier New]0047 :SPB =M001 JUMP TO LABEL M001[/FONT]
[FONT=Courier New]0048 :SPA =M002 ELSE JUMP TO LABEL M002[/FONT]
[FONT=Courier New]0050 :[/FONT]
[FONT=Courier New]0051 M003 :L KH FFFF LOAD 11111111 11111111 IN ACCU[/FONT]
[FONT=Courier New]0052 : USE FLAG-WORD ADDRESS[/FONT]
[FONT=Courier New]0053 :B DW 6 AND TRANSFER TO FLAG-WORD[/FONT]
[FONT=Courier New]0054 :T MW 0[/FONT]
[FONT=Courier New]0055 : LOAD FLAG-WORD ADDRESS[/FONT]
[FONT=Courier New]0056 M002 :L DW 6 + 2 BYTE[/FONT]
[FONT=Courier New]0057 :I 2 SAVE NEW FLAG-WORD ADDRESS[/FONT]
[FONT=Courier New]0058 :T DW 6[/FONT]
[FONT=Courier New]0059 : LOAD LENGTH OF FLAG-WORDS[/FONT]
[FONT=Courier New]0060 :L DW 7 - 1 WORD[/FONT]
[FONT=Courier New]0061 :D 1 SAVE NEW LENGTH OF FLAG-WORDS[/FONT]
[FONT=Courier New]0062 :T DW 7[/FONT]
[FONT=Courier New]0063 :L KH 0001 IF NEW LENGTH OF FLAG-WORDS[/FONT]
[FONT=Courier New]0064 :>F > 1 THEN[/FONT]
[FONT=Courier New]0065 :SPB =M003 JUMP TO LABEL M003[/FONT]
[FONT=Courier New]0066 :[/FONT]
[FONT=Courier New]0067 :LW =OUT LOAD CODE FOR LAST FLAG-WORD[/FONT]
[FONT=Courier New]0068 :B DW 6 USE ADDRESS OF LAST FLAG-WORD[/FONT]
[FONT=Courier New]0070 :L MW 0 AND LOAD LAST FLAG-WORD[/FONT]
[FONT=Courier New]0071 :OW[/FONT]
[FONT=Courier New]0072 :B DW 6 USE ADDRESS OF LAST FLAG-WORD[/FONT]
[FONT=Courier New]0073 :T MW 0 AND TRANSFER TO LAST FLAG-WORD[/FONT]
[FONT=Courier New]0074 M001 :BE[/FONT]
Mein Problem beim übersetzten nach S7 liegt darin, das ich nicht weiß, was der Befehl in Zeile 0038 bzw. 0068 bedeutet.
- wenn dies ein Aufruf der Variable DW 6 sein soll, warum ist dann die
Zeile LW =IN.davor?
- wenn dies ein Transfer sein soll, warum wird dann in Zeile 32 das
DW 6 beschrieben?
Oder passiert estwas indirekt, wovon ich keine Ahnung habe.
Vielen Dank für Eure Mithilfe schon mal im Voraus!!!
Dirk