Multiprog SW

Glüh

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

bin neu hier und wollt mich erstmal für die ganzen nützlichen Beiträge in diesem Forum bedanken.
Da ich zu meinen Problem nichts finden konnte nun mein erster Beitrag.

Ich muss mich bald mit der Multiprog Software und mit der Advantech SPS (Adam 5510KW) beschäftigen und habe ein paar generelle Fragen hierzu (bis jetzt kannte ich nur die Siemens Welt).
Habe mir bereits dei Oscat-Lib runtergeladen und eingefügt( Danke an der Stelle für die Entwickler, Sie ist auf dem ersten Blick sehr umfangreich und gut dokumentiert)

So jetzt zu meinen Fragen:

1. Gibt so eine Art Hardwarekonfig für die Multiprog, wo ich aus dem HW-Katalog mein Rack nachbilde inkl. der Vergabe der Adressen.
Ich finde zwar unter den Eigenschaften den Reiter für die SPS-Typ Einstellung, nur finde ich meine nicht (Advantech 5510KW).Oder gibt es irgendwo ein Button wo ich eine Art "GSD-Datei" anhängen kann, falls es sowas in Multiprog gibt...

Ich habe also keine Ahnung wie ich die Hardware einbinden kann oder bin einfach nur Blind, oder zu Doof dafür???

2. In der S7 Konnte ich einzelne Funktiongruppen nach bei Bedarf aufrufen, wenn die gewünschte Option verbaut worden ist.
Beispiel: Wenn DBx.dbxx0.0 (Einstellung in der Visu) true dann FC 20 En=1 (Heizung mit Thristorsteller 4-20mA Ansteuerung), wenn false dann FC 21 En=1( Heizung mit einfachen DO ansteueren EIN/AUS).
Aber wie mache ich das in Multiprog.
Ich kann zwar für jede Funktiongruppe ein Programm erstellen aber wie kann ich diese je nach Auswahl verwenden. Dachte das ich einfach ein Hauptpramm habe und die Optionen mittels En auswähle.Nur kann ich kein anderes "Unter"-Programm in einem Programm aufrufen.
Wahrscheinlich ist das ganze sehr einfach, bekomme es aber leider nicht hin.

Danke im voraus

Gruß aus dem Pott

Glüh
 
Hallo Glüh,

ich arbeite schon seid über 10 Jahren mit MULTIPROG oder den Produkten die auf MULTIPROG basieren und wollte dir ein paar Tips zu deinen Fragen geben.
Ich hoffe sie helfen dir weiter ;-)

Frage 1:
Advantech bietet keinen so offensichtlichen Hadwarekonfigurator wie du ihn von Siemens kennst. Jedoch hat auch die Advantech MULTIPROG Version einen Konfigurator.
Ich habe ein Quick Start Manual für deine SPS gefunden was dir an dieser Stelle enorm weiter helfen sollte:
http://support.elmark.com.pl/advant.../ADAM-5510KW Series Startup Manual Ed-1.1.pdf

Und hier noch ein etwas tiefer gehendes Manual über die SPS:
http://belasusinc.com/belasusink.files/Download/ADAM-5510KW_eng.pdf


Zu deiner Frage 2:
In der IEC 61131 gibt es keine sogenannten "Unterprogramme" wie bei Siemens. Bei Siemens gibts den OB1 der verschiedene PB's aufruft und abarbeitet - in der IEC 61131 hingegen gibt es NUR Programs, FunktionBlocks und Functions.

Ein Program kann einen FB odereine FU aufufen - niemals ein Program ein anderes Program.
Das wird dir bei allen IEC 61131 konformen Programmierumgebungen auffallen, Beispielsweise Codesys oder MULTIPROG.

Für deinen Fall solltest du also ein Programm anlegen welches mit einer Cyclic Task verknüpft ist. Dieses Program ruft dann deine Funktionen und Funktionsbausteine auf.
Als Beispiel hier mal Deine spezielle Anwendung für einen FB im Strukturierten Text:

VAR_INPUT
Enable : BOOL;
END_VAR

VAR_OUTPUT
Heizung : REAL;
END_VAR

Strukturierter Text Code:
IF Enable THEN
Heizung := REAL#20.0; (*Heizung mit Thristorsteller 4-20mA Ansteuerung*)
ELSE
Heizung := REAL#0.0;
END_IF;

Wenn du den Baustein in deinem Program aufrufst hat er einen Eingang "Enable" und einen Ausgang "Heizung".
Wenn ENABLE:=TRUE, dann wird der Wert 20 auf die REVariable Heuzung ausgegeben, wenn FALSE dann wird eine 0 geshrieben.

TIP: Funktionen und Funktionbausteine können in jeder IEC 61131-3 Sprache geschrieben werden - unabhängig davon in welcher Sprache du den Baustein aufrufst.

Wenn du noch Fragen hast, meld dich einfach.

Gruß,
Carsten.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Glüh,


Ein Program kann einen FB oder eine FU aufufen - niemals ein Program ein anderes Program.

Das stimmt zumindest so nicht bei meiner Codesys Version.

Es ist vielleicht schlechter Stil, wenn ein Programm ein anderes aufruft, aber viele meiner Kollegen rufen aus PLC_PRG andere Programme auf. (Übrigens die gleichen, die lieber mit globalen Variablen arbeiten als mit Parameter Übergabe).
 
Es ist vielleicht schlechter Stil, wenn ein Programm ein anderes aufruft, aber viele meiner Kollegen rufen aus PLC_PRG andere Programme auf.

Das muss nicht schlechter Stil sein. Auch ein PRG kann ja Input-und Outputvariablen haben. Wenn ich von einem FB nur eine Instanz brauche, kann ich also stattdessen auch ein PRG schreiben. Ich kenne zwar den CoDeSys-Compiler nicht von innen, denke aber, das ein PRG ein wenig schneller ist als eine FB-Instanz. Da kommt der Jäger der verlorenen Mikrosekunde aus vergangenen SPS-Zeiten wieder durch.;)

Bei Multiprog geht das aber tatsächlich nicht. Ist sowieso deutlich strenger bei der Einhaltung der IEC-Vorgaben als CoDeSys.
 
Hallo,

da habe ich wieder etwas gelernt. Ich wusste nicht das Codesys auch PRG's aufrufen kann.

Nach IEC 61131 sollte das eigentlich nicht gehen, ich halte das aber auch nicht für schlimm. Wer nicht will muss es ja auch nicht nutzen.

Ob das ein schlechter Stil ist .... waage ich eigentlich nicht zu beantworten. Ich finde das ist eher eine Geschmackssache, und darüber lässt sich bekanntlich nicht streiten.

Ich fände es auf jeden Fall besser wenn man sich so nah wie Möglich an die IEC 61131 hält, so könnte erstens die Querübersetzbarkeit gewährleistet werden und zweitens wäre der Einsatz verschiedener Hersteller in einem Betrieb schon aus Schulungstechnischen Gründen wesentlich einfacher.

Gruß,
Carsten.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Kolla,


hatte das Handbuch später auch gefunden und mein Programm auch so aufgebaut wie du es beschrieben hast (Optionen als FB's).
Die SW läuft auch so weit ganz gut.
Ich musste mich zwar erst an die Multiprog gewöhnen aber nun klappt es ganz gut damit.

Zwischenzeitlich hatte ich ein Engpass mit den Systemdaten (konnte dann die SPS nicht mehr laden), aber den von Advandtech war das Problem bekannt und konnten mir dann auch weiterhelfen.(bat.Datei musste abgeändert werden)



Habe allerdings noch 2 Fragen bzgl. Multiprog mit Advantech Sps:

1. Beim ausdrucken der Projektdokumnetation ist die Spalte für den Klartext der Variablen nicht vergrößerbar, die Texte sind dann immer abgeschnitten.
Gibt es hierfür eine Lösung?

2. Gibt es ein Beispiel um ein Task in Abhägigkeit einer Variable ablaufen zu lassen?


Gruß Glüh
 
Hallo Glüh,

gut zu hören das du mit MULTIPROG gut zurecht kommst. :p

Für die Frage 1. kann ich dir leider keine Antwort geben da ich nicht weiß welche Version von MULTIPROG du gerade einsetzt. Ich glaube du nutzt die Version 3.3 oder 4.0. - ich weiß das es dort diesen Fehler gegeben hat und der später in MULTIPROG beseitigt wurde.
Aber wahrscheinlich wirst du nicht einfach so updaten können, da ansonsten die Advantech Spezifischen Nachinstallationen nicht mehr funktionieren werden.

Zu Frage 2 gibt es eine Möglichkeit. In der Firmware Bibliothek "ProConOS" gibt es einen Baustein EVENT.
Wenn du diesen Baustein verwendest und eine EVENT Tas angelsgt kannst du in Abhängigkeit einer Variablen eine hochpriore Event Task starten.
Bedenke aber das EVENT Tasken hochprior abgearbeitet werden und somit andere Tasken unterbrechen können!

Gruß,
Carsten.
 
Ich kenne zwar den CoDeSys-Compiler nicht von innen, denke aber, das ein PRG ein wenig schneller ist als eine FB-Instanz. Da kommt der Jäger der verlorenen Mikrosekunde aus vergangenen SPS-Zeiten wieder durch.;)
Ich glaube nicht dass man einen Unterschied wird rausmessen können, aber für die meisten Prozessoren wird ein Funktionsblock vermutlich sogar schneller sein.
Der Grund ist: beim FB liegen alle Variablen hintereinander im Speicher, beim PRG nicht unbedingt. Beim FB können dann alle Instanzvariablen über denselben Pointer addressiert werden, beim PRG muss manchmal die Adresse nachgeladen werden. Aber das wird vermutlich niemals eine Rolle spielen.
Bei Multiprog geht das aber tatsächlich nicht. Ist sowieso deutlich strenger bei der Einhaltung der IEC-Vorgaben als CoDeSys.
Kann man so oder so sehen, gegenüber Erweiterungen ist die Norm tolerant.
Also man darf schon auch Funktionalität anbieten, die über den Standard hinausgeht. Bei CoDeSys sind wir da immer sehr grosszügig vorgegangen. Ich denke das ist im Sinne des Anwenders. Der will ja in erster Linie ein Problem lösen.
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Kann man so oder so sehen, gegenüber Erweiterungen ist die Norm tolerant.
Also man darf schon auch Funktionalität anbieten, die über den Standard hinausgeht. Bei CoDeSys sind wir da immer sehr grosszügig vorgegangen. Ich denke das ist im Sinne des Anwenders. Der will ja in erster Linie ein Problem lösen.
Das mit der Einhaltung der IEC-Vorgaben war nicht negativ gemeint. Ich habe mit beiden Entwicklungsumgebungen gearbeitet und weiss die Grosszügigkeit von CoDeSys durchaus zu schätzen.
 
Zurück
Oben