B&R Automation Basic - Variablenproblem

be_und_err

Level-1
Beiträge
8
Reaktionspunkte
1
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

ich stehe hier momentan vor dem Problem in Automation Basic, dass z.B. eine in einer IF-Abfrage geaenderte Variablen von dieser quasi "gesperrt" wird, da natuerlich in jedem Zyklus die Änderung aufs Neue gemacht wird.

Gut wäre es wenn es einen Befehl gäbe der soetwas wie z.B. "BOOL umschalten" (TRUE auf FALSE und andersrum) machen würde.

Vielleicht hat noch jemand einen Tipp

Gruß
 
Hallo,

kannst du bitte einen kleinen Auszug deines Programmes posten?

Ansonsten wird es ein wenig schwer zu verstehen, was du meinst.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
ich stehe hier momentan vor dem Problem in Automation Basic, dass z.B. eine in einer IF-Abfrage geaenderte Variablen von dieser quasi "gesperrt" wird, da natuerlich in jedem Zyklus die Änderung aufs Neue gemacht wird.

Gut wäre es wenn es einen Befehl gäbe der soetwas wie z.B. "BOOL umschalten" (TRUE auf FALSE und andersrum) machen würde.
:confused:
wieso nicht so:
Code:
VAR
   bVariable: BOOL; (* zu schaltende Variable *)
   bTrigger: BOOL; (* umschaltbedingung *)
END_VAR
(******************)

IF bTrigger THEN
  IF bVariable THEN
     bVariable := FALSE;
  ELSE 
     bVariable := TRUE;
  END_IF
END_IF
Solche eine Auswertung toggelt bVariable in jedem Zyklue, wenn bTrigger = TRUE ist. Man könnte vor das bTrigger dann noch eine Flankenauswertung schalten und diese dann als Trigger auswerten.
 
hm - ist hilfe schwer. man sollte schon wissen was du vor hast.

eventuell hilft dir ja der befehl edgepos oder edgeneg - quasi die flankenerkennung. dabei wird nur bei ersten mal die schleife abgearbeit.

aber beschreib mal genauer was du machen willst.

lg
knorpe
 
Code:
IF bTrigger THEN
  bVariable = NOT bVariable
END IF
Ach ja - was nun Basic oder ST????? Die von Dir geschriebene Syntax sieht mehr nach ST aus......
 
Ach ja - was nun Basic oder ST????? Die von Dir geschriebene Syntax sieht mehr nach ST aus......

Nicht BASIC sondern AutomationBasic.:!: Das ist ein Unterschied.
Es handelt sich um eine Programmiersprache aus B&R AutomationStudio.
Enthält C und Basic Elemente und erleichtert das Programmieren erheblich.
 
Nicht BASIC sondern AutomationBasic.:!: Das ist ein Unterschied.
Es handelt sich um eine Programmiersprache aus B&R AutomationStudio.
Enthält C und Basic Elemente und erleichtert das Programmieren erheblich.
Vielen Dank für die kurze Unterweisung!

In unserem Sprachgebrauch wurde der Ausdruck "Automation" beim Begriff "Automation Basic" übrigens wegrationalisiert, da es sich bei "Basic" im Zusammenhang mit B&R Automation Studio ohnehin immer und Automation Basic handelt. Sprich: der von mir gewählte Ausdruck "Basic" sollte eigentlich "Automation Basic" implizieren.

mfg Maxl

PS: Name des Threads "Automation Basic" - geposteter Code -> ST
PPS: C-Elemente konnte ich in Automation Basic bisher noch nicht entdecken.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Maxl,

in meinem Sprachgebrauch spreche ich von Automation Basic und Visual Basic.net oder DotNet Basic.
Ich arbeite mit beiden Sprachen um die B&R zu steuern.

Daher ist für mich
Code:
(Basic NOT Automation Basic) AND (Basic NOT Visual Basic.Net)
Nicht böse sein dass ich so kleinlich bin! ;)

Mfg, Thovi
 
[KLUGSCHEISS_EIN]
... um die B&R zu steuern

Vermutlich meinst du damit eine Steuerung der Firma Bernecker & Rainer. Konkret eine der SPSn der Generation SG3/SG4. SG2 CPUs verstehen nämlich von Haus aus kein Basic, ausser du schreibst dafür einen Interpreter. Obwohl, wenn ich mich recht entsinne gab es vor Ewigkeiten eine CPU die das Wort "Basic" in der Bezeichnung hatte, mit welcher Sprache diese programmiert wurde entzieht sich aber meiner Kenntnis.

[KLUGSCHEISS_AUS]

Aus dem Kontext heraus habe ich auf (Automation) Basic getippt, aber erst durch deine Richtigstellung wurde ich von meiner Unsicherheit befreit.

Grüsse, harrylask

PS: Du steuerst eine B&R SPS mit .Net? Jetzt bin ich neugierig, wie stellst du das an?
 
PS: Du steuerst eine B&R SPS mit .Net? Jetzt bin ich neugierig, wie stellst du das an?

Guten Morgen harrylask!

Es gibt ein PVI Management System für den Zugriff auf Prozessvariablen.
Für VB.Net, C# und C++ werden Klassen zur Verfügung gestellt die einen uneingeschränkten Zugriff auf die Prozess Variablen der Steuerung gewähren.
Es lassen sich sogar ganze Tasks/Module austauschen. Die SPS kann gestoppt, gestartet, neu gebootet werden usw.
Eine Variable kann global oder lokal sein und wird direkt über ihren Namen angesprochen. Wir können so die Eingaben/Ausgaben ohne Power Panel nur mit einem Windows PC oder IPC vornehmen. :!: So kann man z. B. ganz leicht Fernwartungs-Programme erstellen oder Updateprogramme für den Kunden.

mfg thovi
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo thovi,
PVI - Process Visualisation Interface, mit dem kannst du auf eine SPS zugreifen, aber keine Tasks programmieren. Und um das ging es in diesem Thread. Die Frage an dem Ersteller lautete "Basic oder ST?" und dieser meinte damit sicher keine Programmiersprache mit der sich die SPS definitv nicht programmieren lässt.

Grüsse, harrylask
 
Hallo harrylask,

ich könnte jetzt auch die KLUGSCHEISS Variante wählen tue ich aber nicht.;)

PVI - Process Visualisation Interface, mit dem kannst du auf eine SPS zugreifen, aber keine Tasks programmieren.
Das ist Richtig. Man kann aber Programme entwickeln mit denen man die Steuerung updaten also einen fehlerhaftenTask durch einen neuen ersetzen kann. (Lässt sich auch mit PVI Transfer bewerkstelligen)
Die Frage an dem Ersteller lautete "Basic oder ST?"
.
Meine Antwort bezog sich auf die Definition von BASIC. Das Automation Basic ist entfernt mit der Programmiersprache BASIC verwant. Automation Basic soll eine einfache Programmierung suggerieren. Ist ja auch so. Ich finde aber das sie C wesentlich ähnlicher, wenn auch etwas einfacher, ist.

dieser meinte damit sicher keine Programmiersprache mit der sich die SPS definitv nicht programmieren lässt.
Ich habe nie behauptet das ich die SPS damit Programmieren kann. Ich habe geschrieben dass ich sie steuern kann

mfg thovi
 
Hallo thovi,

ich könnte jetzt auch die KLUGSCHEISS Variante wählen tue ich aber nicht.

Was wolltest du dann mit dem letzten Posting bezwecken?

Ich habe nie behauptet das ich die SPS damit Programmieren kann. Ich habe geschrieben dass ich sie steuern kann

In diesem Thread stand nicht die Definition von Basic zur Debatte. Auch wenn die Frage des Themenstellers schon beantwortet wurde muss ein Thread nicht mit themenfremden Müll belastet werden. Mach einen Neuen auf falls du es für diskussionswürdig hältst. Abgesehen davon, um ein viel strapaziertes Zitat eines eifrigen Forenmitglieds zu verwenden ... "Lesen soll man können" ... manchmal auch zwischen den Zeilen!

Grüsse, harrylask
 
Zurück
Oben