SINAUT Standleitung mit Doppelwortübertragung

mclear

Level-2
Beiträge
69
Reaktionspunkte
2
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo Leute!

Ich plage mich zur Zeit mit einer SINAUT Projektierung rum. Die Anlage ist neu aufgebaut, ich verwende Step7 v5.3 und die aktuelle SINAUT-Software.

Es handelt sich um vier, im Umkreis von ca. 20 km auseinanderliegenden,Wetterstationen. Ausgestattet sind diese jeweils mit der 313C-2DP, einer TIM 4R und einem Modem MD2.

Die übergeordnete Station ist eine 319er mit TIM 4RD und und ebenfalls MD2. Jetzt zu meinem Problem:

1. Die Bitinformationen (Einbruch, Sabotage, Automatenfall etc.) werden problemlos übertragen. Den entsprechenden FC hab ich grad nicht im Kopf, kann ich aber gerne nachbeantworten... Jedenfalls überträgt er 4 Byte ereignisgesteuert.

2. Die eigentlich wichtigen Informationen (Temperaturen, Regenmenge etc.) sind Integerwerte und sollten eigentlich minütlich übertragen werden.Leider funktioniert genau das eben nicht. Auf der untergeordneten Station ist der FC85 (Send12DW) und auf der übergeordneten Station der FC86 (Recieve12DW) aus der TD7 Bibliothek aufgerufen. Durch einen Triggerinput kann der Sendevorgang ausgelöst werden.

Ich habe mir zur minütlichen Triggerung einen Impuls aus dem CPU-Sekundentaktmerker und einem Zähler auf 60(danach Reset) gebildet. Kann es sein, dass die Flanke wenn ich sie im FC0 bilde, dann im OB1 keinen Einfluß mehr hat?

Also: OB1
Call FC Byteübertragung
Call FC Doppelwortübertragung
Call FC 0
Call Fc 1
.
.
.

Ich weiß das es im SINAUT noch einen FC TimeTask gibt. Hat jemand Erfahrung damit?

Hat das schonmal jemand zum laufen gebracht?

Achso, wenn ich die CPU (Unter- oder Übergeordnete) stoppe und wieder starte erfolgt einmalig die Übertragung aller gewünschten Daten. Danach kann ich im Diagnosepuffer der Untergeordneten Staion nur noch eine ominöse Fehlermeldung auslesen, die aber selbst Siemens-Support nicht deuten kann... (Hab das Projekt schon mal in den Support gegeben, laut denen müsste es so funktionieren)

Hoffe ihr lasst mich nicht alleine :rolleyes:

Gruß mclear
 
hoi mclear.

ich hab früher auch sinaut gemacht, werd morgen mal in den alten unterlagen nachsehen, wie das geht, das bekommst schon hin... ich weiss noch was, mit DWORD als int versenden: sendest du direkt als DW, oder teilst du es in 2 x int auf?
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo,

das Triggern muss über den FC 114 erfolgen. Handbuch SINAUT.


z.B.

CALL FC 114
IntervalMode :=TRUE
Hour_Minute :=W#16#FF15 // alle 15 min.
Second_Day :=W#16#FFFF
Month_Year :=W#16#FFFF
TriggerOutput:=M2.1
Flag :=M2.2
 
Hallo unmare!

Danke erstmal deine Antwort. Dachte schon da will gar keiner so richtig ran.

Also Siemens meint es sollte so gehen mit meinem selbstgemachten Minutentrigger. Im Diagnosepuffer der Unterstationen steht Fehler B115, den soll ich nun mal mit dem SINAUT Diagrammmonitor beobachten und ein Protokoll zusenden.

Naja, aber wenn es eh darauf hinausläuft, dass ich den FC114 nutzen muss, kann ich mir das eventuell sparen.

Ich hatte mich bisher davor gescheut so einen Aufwand mit der internen SINAUT-Zeit und dem Trigger-FC zu betreiben, weil ich befürchte dass die Uhrzeitsynchronisierung nur Probleme mit sich bringt(DCF-Antenne hat nur sporadisch ein gültiges Signal).

Zu deiner Frage mit dem DWORD. Der Eingang des FB85 (sendDWORD) wird über einen Zeiger im DWORD Format parametriert, aber die Datenworte sind im Integer-Format.

Gesendet werden sollen 4 Datenworte (P# DB100 DBX 20.0 DWORD 4), aber effektiv soll nur ein "eineinhalbes" Datendoppelwort übertragen werden(Rest ist Reserve). Die Zuordnung ist ok, denn bei einer Generalabfrage (Start / Stop der CPU) kommen die Werte ja.

Hab schon überlegt ob ich im SINAUT die Generalabfrage einfach auf 1 Minute stelle anstatt auf 900 Sekunden...


Gruß mclear
 
So, hab jetzt wohl die Lösung des Problems....

Irgendwo im SINAUT-Handbuch steht der treffende Satz:

"Es bleibt selbstverständlich Ihnen überlassen das SINAUT-Programm zu strukturieren und in einen oder mehrere FC's zu "verpacken"."

Genau das habe ich getan und siehe da plötzlich geht es auch mit der Fehlermeldung B115...

Den Timetask und den TriggerFC habe ich eingefügt und zwar im OB1 wie von Siemens vorgeschrieben, nur leider kommt der Trigger eben nicht.

Um nun also die Datenworte trotzdem zu übertragen habe ich den SendeFC im FC0 aufgerufen. Ein Netzwerk zuvor erzeuge ich meinen selbstgeschriebenen Minutenimpuls. Funktioniert prima so, nur warum klappts nicht wenn ich den Aufruf im OB1 mache?

Ist es tatsächlich so das steigende Flanken die ich in irgendeinem FC erzeuge im OB1 keinen Effekt haben, weil der OB1 genau wie jeder andere FC nur einmal pro Zyklus aufgerufen wird? Dann müsste der Inhalt des OB1 irgendwo im Arbeitsspeicher abgelegt werden, oder?

Wie ist der Ablauf in einem Zyklus????
 
Zurück
Oben