# Promodpro



## Notronic (7 Juni 2011)

Hi Leute,

hat von euch vielleicht schon mal jemand ein paar Promodpro Beispiele mit Codesys programmiert?
Ich hätte gerne das Programm für Aufgabe 5.2 Füllstand PT1.
Gibt es hier irgendwelche Musterlösungen oder sowas?

Hätte gern Lösungen für den Übungszweck, sozusagen zum nachprogrammieren...
Wäre super wenn mir jemand weiterhelfen könnte...


----------



## Notronic (7 Juni 2011)

Weiß da keiner drüber bescheid? ProMod-Pro ist ja eine weit verbreitete Software, da muss es doch irgendwelche Musterlösungen oder so dazu geben oder?
Wäre echt toll wenn mir hier weitergeholfen wird.


----------



## trinitaucher (7 Juni 2011)

Notronic schrieb:


> hat von euch vielleicht schon mal jemand ein paar Promodpro Beispiele mit Codesys programmiert?
> Ich hätte gerne das Programm für Aufgabe 5.2 Füllstand PT1.
> Gibt es hier irgendwelche Musterlösungen oder sowas?
> 
> Hätte gern Lösungen für den Übungszweck, sozusagen zum nachprogrammieren...


Selbst wenn jemand schon einmal damit gearbeitet haben sollte (ich musste erst googlen, was das denn ist), was erwartest du als Antwort?
Eine passende Lösung, fix und fertig? *ROFL*

Hausaufgabenhilfe gibt's woanders...


----------



## Notronic (8 Juni 2011)

Naja, so eine Antwort habe ich schon erwartet, bin jetzt dabei mir die Schaltung selbst zu erarbeiten und hätte auch gleich einige Fragen:

Ich brauche für den PID Regler in Codesys verschiedene Eingangsvariablen mit denen ich nicht klar komme:
- Der KP Wert zum Beispiel soll von EB25 erhalten werden
- Der Sollwert von EW52

Eine normale Boolsche Eingangsvariable deklariere ich ja so 
( Name AT %IX5.0: BOOL; )
Wie deklariere ich denn jetzt die Variablen EB und EW?


----------



## MasterOhh (8 Juni 2011)

Mit Codesys hab ich noch nicht gearbeitet. Da aber TwinCAT sehr ähnlich ist, denke ich mal das du bei der Deklaration der Aus und Eingänge erstmal die 
Adresszusweisung dem Compiler überlassen kannst.

EingangsBit: AT%I* :BOOL;
AusgangsBit: AT%Q* :BOOL;

EingangsByte: AT%I* :Byte;  (oder USINT)
EingangsWord: AT%I* :WORD; (oder Integer)

(Ausgänge halt analog)


----------



## gloeru (8 Juni 2011)

Notronic schrieb:


> Eine normale Boolsche Eingangsvariable deklariere ich ja so
> ( Name AT %IX5.0: BOOL; )
> Wie deklariere ich denn jetzt die Variablen EB und EW?



Da helfen wir dir doch sofort weiter!


```
Bytewert  AT  %IB25:  BYTE;
Wordwert  AT  %IW52:  WORD;
```
Anstelle von BYTE und WORD kannst du beliebige Datentyen mit 8 bzw 16 bit nehmen...


----------



## Notronic (8 Juni 2011)

Super, danke. Damit konnte ich schon mal weiter voran schreiten.
Jetzt bin ich auf ein weiteres wesentlich größeres Problem gestoßen.
Es gibt in Codesys einen fertigen PID-Regler den ich nun mit den BYTES
EB25/EB26/EB27 und den WORDS EW52/EW54/EW52 beschalten muss. 

Jedoch sind die ein und Ausgänge vom Regler REAL Variablen.
Kann ich den Regler jetzt einfach mit den WORD und BYTE Variablen beschalten oder muss ich diese irgendwie umwandeln (geht das überhaupt)?


----------



## gloeru (9 Juni 2011)

kein Problem, dafür gibt es für fast alles Typenkonvertierungen:


```
Realwert := BYTE_TO_REAL(Bytevariable);
Realwert := WORD_TO_REAL(Wordvariable);
```
Das Spielchen kannst mit fast allen (und irgendwie sinnvollen) Datentypen machen. Einfach dran denken was passiert, bei gewissen Konvertierungen gehen Informationen verloren (z.B. beim Runden)

Nachtrag:
Was steht in deinen Bytes/Words?? Sind das Analogsignale von Sensoren? -> Dann müsstest du wohl eine Skalierung rechnen...


----------



## Notronic (9 Juni 2011)

Gibt es hierfür auch eine Lösung im FUP irgendein Baustein aus der Bibliothek der mir das umformen kann. Move oder so etwas? Ich habe morgen mal ein Bild von der schaltung aus promod pro an das man sieht wo die Werte herkommen...


----------



## gloeru (9 Juni 2011)

Ja klar, einfach ein Baustein reinziehen (z.B. AND) und dann BYTE_TO_REAL reinschreiben....


----------



## Notronic (9 Juni 2011)

Auf die Idee bin ich auch schon gekommen. Jedoch werden die Werte irgendwie verfälscht, ich werd mir den genannten Baustein heute Mittag nochmal etwas genauer ansehen...
Danke für den Tipp.


----------



## Notronic (9 Juni 2011)

Hier habe ich mal die Schaltung, die ich realisieren möchte:


----------



## Notronic (9 Juni 2011)

Also, vielleicht sollte ich einfach nochmal ganz von vorn beginnen.
Also ich habe wie gesagt die obige Schaltung und weiß einfach nicht genau wie ich vorgehen soll...

Edit:
Ich soll theoretisch einfach eine Schaltung im FUP bauen welche den Soll Füllstand dann automatisch
ausregelt...


----------

