Analogwertverarbeitung mit B&R 2003

sunny22

Level-2
Beiträge
259
Reaktionspunkte
52
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Zusammen,

da B&R das AS v3 nun ohne Beschränkungen anbietet und ich aus Demontagen noch einige Komponenten vom System 2003 liegen hatte, dachte ich, das ist doch ein nettes Objekt zum spielen.
Bislang hatte ich noch nicht wirklich etwas mit B&R zu tun. Sondern nur mit Siemens S7/S5 , der Siemens GLT-Sparte und LG-Steuerungen.
Wie ich dann feststellen musste ist B&R mit ihren Steuerungen doch etwas anders unterwegs. Das ganze erinnert mich mehr an Mikrocontroller Programmierung als an SPS. Vielleicht hab ich aber auch die falsche Herangehensweise?
Insbesondere geht es mir gerade um die Analogwertverarbeitung. Schon das Einlesen der Daten erscheint mir sehr aufwendig.
Ich habe hier folgende Konfiguration: CP430 als CPU, 7AF101.7 als Kopplung für die Anpassmodule und ein AT352 zum Anschluss eines PT100.
Ich hatte das dann auch so in der Hardwarekonfiguration konfiguriert und den Eingängen Variablen zugewiesen. Ich war der Meinung das müsste reichen. Allerdings kamen keine Werte in den Eingangsvariablen an.
Daraufhin widmete ich mich der AS-Hilfe und dem Systemhandbuch, las einiges über direkte IO-Zugiffe, Schaufelaufträge und Konfigurationsregister. Nach viel Experimentiererei mit der, nicht ganz einfach zu verstehenden, Doku und den dort enthaltenen Beispielen hatte ich einen ca. 60 Zeilen langen Code und tatsächlich füllte sich eine Variable mit dem gewünschten Wert.
Jetzt stell ich mir natürlich die Frage, ist das bei B&R tatsächlich so umständlich? Das kann doch eigentlich gar nicht sein. Mit so was will doch kein Mensch arbeiten. Mach ich was falsch? (Ich geh davon aus) Was sagen die B&R Nutzer dazu?

Grüße Oliver
 
Das geht auch ohne Programmzeile

Maus auf das AnalogModul AT352 stellen, rechte Maustaste und IO Mapping auswählen.
Unter PV Variable kannst du deine Wert anlegen.
CP20031.JPG
 
Zuletzt bearbeitet:
Zuviel Werbung?
-> Hier kostenlos registrieren
Insbesondere geht es mir gerade um die Analogwertverarbeitung. Schon das Einlesen der Daten erscheint mir sehr aufwendig.
Ich habe hier folgende Konfiguration: CP430 als CPU, 7AF101.7 als Kopplung für die Anpassmodule und ein AT352 zum Anschluss eines PT100.
Ich hatte das dann auch so in der Hardwarekonfiguration konfiguriert und den Eingängen Variablen zugewiesen. Ich war der Meinung das müsste reichen. Allerdings kamen keine Werte in den Eingangsvariablen an.
Daraufhin widmete ich mich der AS-Hilfe und dem Systemhandbuch, las einiges über direkte IO-Zugiffe, Schaufelaufträge und Konfigurationsregister. Nach viel Experimentiererei mit der, nicht ganz einfach zu verstehenden, Doku und den dort enthaltenen Beispielen hatte ich einen ca. 60 Zeilen langen Code und tatsächlich füllte sich eine Variable mit dem gewünschten Wert.
Jetzt stell ich mir natürlich die Frage, ist das bei B&R tatsächlich so umständlich? Das kann doch eigentlich gar nicht sein. Mit so was will doch kein Mensch arbeiten. Mach ich was falsch? (Ich geh davon aus) Was sagen die B&R Nutzer dazu?
Wollte man bei B&R ein Analogmodul nicht im Standardmodus betreiben, war das für Versionen < 2.5 tatsächlich recht aufwändig. Die Schwierigkeit liegt nicht im Zuweisen der Eingangs- und Ausgangsvariablen an die Kanäle, sondern im Konfigurieren der Kanäle. Das Codebeispiel, das du eingesetzt hast, brauchte man bei AS < 2.5 noch, ab 2.5 und auch bei AS3 ist das nur noch in Ausnahmefällen notwendig - aber immer noch möglich!

Eigentlich sollte es reichen, wenn du bei 'AnalogOutput01' eine Variable beschaltest, in der konsequent 0 steht, damit wird das Konfigurationsregister 14 beschrieben (wie im handbuch zum AT352 beschrieben http://www.br-automation.com/downloads_br_productcatalogue/BRP44400000000000000017985/7at35270.pdf ).
Über die Bits im Konfigurationswort kannst du noch die Auflösung und die Filterfrequenz verstellen, das wars dann auch - und somit sollten konsequent Werte hereinkommen.

Was ganz wichtig ist: die dem Analogen Eingangskanal zugewiesene Variable (AnalogInput01) muss irgendwo im Programm zumindest gelesen werden, sonst wird sie vom Betriebssystem nicht aktualisiert.

lg
 
Wie ich dann feststellen musste ist B&R mit ihren Steuerungen doch etwas anders unterwegs. Das ganze erinnert mich mehr an Mikrocontroller Programmierung als an SPS. Vielleicht hab ich aber auch die falsche Herangehensweise?

Hallo Oliver,

wilkommen auf der anderen Seite ;) .

Ja, die herangehensweise ist eine andere aber man ist "näher dran" an der Hardware. Durch die beigestellten B&R Systembibliotheken hat man bessere möglichkeiten mit der SPS das zu tun was man wirklich braucht und muss sich nicht durch überlagernde Funktionen oder SFB's komplizierte Konstruktionen basteln.
Ausserdem ist die Variablen- und Speicherverwaltung um Welten besser als das was der "Marktführer" bietet.
Das einzige was mich bei B&R stört ist, dass man über den Trace nur 8 Variablen aufzeichnen kann. Ist bei größeren Anlagen oder Komplexeren Prozessen schon sehr lästig.

Bezüglich deines Analogwertes: Meines Wissens nach muss man jede einem Hardware Ein- oder Ausgang zugeordnete Variable im Programm mindestens einmal aufrufen, damit sie überhaupt korrekt gemappt und verwendet wird.

Grüße

Markus
 
Hallo zusammen,
erst mal vielen Dank für eure Tipps! Die haben natürlich geholfen. Ich konnte das Problem eingrenzen und auch nachvollziehen. Grundsätzlich funktioniert es tatsächlich so einfach wie zuerst erwartet. Also mit einer Variablenzuweisung in der Hardwarekonfiguration. Damit es das tut gibt es aber Dinge die man nicht machen darf. Man darf z.b. in in der Hardwarezuweisung nicht allen Datenpunkten Variablen zuweisen die dort aufgeführt sind sondern wirklich nur den zwei Eingängen. Tut man das z.b. auch bei dem Statusword funktioniert alles nicht mehr. Dann muss man, wie von da_kine angemerkt die Variablen auch benutzen. Dabei müssen sie aber sinnvoll benutzt werden. Es reicht nicht sie in einen Funktionsplan zu legen und sie dort einer anderen Variablen zuzuweisen. Ich denke so etwas wird beim kompilieren wegoptimiert so wie es auch bei anderen Hochsprachenkompilern passiert.
Mal sehen wie es weiter geht. Ich vermute stark das war nicht das letzte Problem was ich haben werde :smile:. Im Moment bin ich zumindest froh dass ich mit B&R nicht produktiv arbeiten muss.:rolleyes:

Grüße Oliver
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Mal sehen wie es weiter geht. Ich vermute stark das war nicht das letzte Problem was ich haben werde :smile:. Im Moment bin ich zumindest froh dass ich mit B&R nicht produktiv arbeiten muss.
Naja, das sind mal so Eigenheiten, die jeder hat.
Warum kann man bei S7-300 auf manche Teilnehmer mit EW, und auf manche nur mit PEW zugreifen, und warum funktioniert das mit einem Teil der analogen Kanäle mit beidem? Warum brauche ich einen OB121, wenn ich auf PEW/PAW zugreife? Warum muss ich zum Verstellen der Filterstufe die CPU stoppen oder irgendwelche azyklischen Parameteraufträge programmieren? Und was soll die Zahl 27648?

Nicht falsch verstehen - das ist keine Kritik an Siemens und ein Lob auf B&R. Es soll nur veranschaulichen, dass jedes System seine Eigenheiten hat - man muss sich jeweils daran gewöhnen.
Ich selber hab mit beidem produktiv gearbeitet und Projekte mit B&R gemacht, die ich niemals mit Siemens hätte machen wollen, und Projekte mit Siemens gemacht, die mit B&R fürchterlich umzusetzen gewesen wären.
 
Zurück
Oben