- Beiträge
- 5.872
- Reaktionspunkte
- 1.058
-> Hier kostenlos registrieren
Klar. Warum nicht? Ist doch nur ne Sache wie ich das im weiteren Programm verwende. 0 ist für mich NULL.Arrays die bei 1 losgehen?
Folge dem Video um zu sehen, wie unsere Website als Web-App auf dem Startbildschirm installiert werden kann.
Anmerkung: Diese Funktion ist in einigen Browsern möglicherweise nicht verfügbar.
Klar. Warum nicht? Ist doch nur ne Sache wie ich das im weiteren Programm verwende. 0 ist für mich NULL.Arrays die bei 1 losgehen?
Hab mir angewohnt meine Arrays immer mit 0 zu beginnen, für den Fall dass wirklich etwas mal undefiniert steht/zeigt. Aber solange du damit zurecht kommst alles fein, würde es mich nur nicht mehr trauenKlar. Warum nicht? Ist doch nur ne Sache wie ich das im weiteren Programm verwende. 0 ist für mich NULL.
Meine Idee war bisher, den CPU-Ladespeicher als Backup zu nuzen. Falls der IPC mal ausfällt kann der Kunde weiter produzierenDas kling fast danach als wollte man sich ein MES sparen? Warum muss die SPS so viel "wissen"?
Hast du denn die Variablen auch so angelegt wie von Harald beschrieben ?... Du musst für die 8 String-Arrays jedes Array-Element einzeln als HMI-Variable projektieren - das ist der kleinere Aufwand, kostet aber 80 PowerTags. Mit den 88 zusätzlichen einzelnen HMI-Variablen (jeweils String) sollte das folgende Skript funktionieren
SmartTags("SAP")(i) = "0" + aWert_1(i)
ich habe Dein Code-Beispiel (#28) getestet. Wenn ich das Script ausführe bekomme ich folgendes angezeigt (Meldefenster):
Anhang anzeigen 70353
ich habe es getestet, mit dem gleichen Ergebnis Error Number: 190011, "Tag SAP: value couldnot be written in PLC.
Der Grund für dieses Konstrukt ist, daß in seiner csv-Datei öfters Werte fehlen bzw. leer sind (direkt aufeinanderfolgende Semikolons!). Das ergibt beim Split() dann leere Strings (Null). Die in VBS automatische Konvertierung zu Dint bei der Zuweisung an SmartTags("DIntvariable") erzeugt einen Runtime-Error, wenn man einen Null-String an eine DInt-Variable zuweisen will. Der AusdruckBei SAP handelt es sich um einen DINT - da macht diese Zeile :
... so keinen Sinn - die "0" stehen ja für einen String - nimm die mal weg ...Code:SmartTags("SAP")(i) = "0" + aWert_1(i)
Das kann dann weitere DINT's natürlich genauso gelten ...
SmartTags("SAP")(i) = "0" + aWert_1(i)
erzeugt zuerst einen String, der garantiert nicht Null ist, und danach kann die automatische Konvertierung ohne Runtime-Error zu 0 (dezimal) konvertieren.SmartTags("SAP")(i) = aWert_1(i) & " "
"0" + aWert_1(i)
formuliert."0" & Trim(aWert_1(i))
Auch@PN/DP : immer auf die implizierte Konvertierung zu setzen ist in meinen Augen kein guter Stil und auch nicht ungefährlich. Hier es gleich so zu schreiben wie es erforderlich ist halte ich für sauberer
CLng(aWert_1(i))
liefert einen Runtime Error bei einem Null-String. Auch für CLng()
ist es erforderlich, daß man "0" + aWert_1(i)
schreibt. Ob man da noch zusätzlich CLng( ... )
außen rum schreibt, ändert nichts am Ergebnis.If aWert_1(i) = "" Then
SmartTags("SAP")(i) = 0
Else
SmartTags("SAP")(i) = CLng(aWert_1(i))
End If
Klingt interessant... Wie geht das, eine Datei auf die Memory Card einer S7-1500 CPU zu laden?Ein anderer Weg wär per SPS-Webserver CSV auf die Memory Card legen und per "load reciped" (SPS-Baustein) direkt in der SPS arbeiten.
Wir verwenden essentielle Cookies, damit diese Website funktioniert, und optionale Cookies, um den Komfort bei der Nutzung zu verbessern.
Siehe weitere Informationen und konfiguriere deine Einstellungen