TIA Counter Vergleichen in Graph S7-315

blimaa

Level-3
Beiträge
1.072
Reaktionspunkte
123
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi
Ein altes S7-Classic Projekt wurde aufgerüstet auf TIA V15.1. In diesem hat es Programmteile mit Graph. Nun hat es dort einen Zähler (Counter) als Baustein Input und dieser wird auch im Graph hochgezählt und auch wieder genullt. Nun wird dieser an vielen Orten im Graph Ablauf mit fixen Zahlen verglichen.
Nun kann es anscheinend im TIA nicht mehr direkt verglichen werden (== Int). Es ist mir jetzt die Variable "Zähler" rot und TIA beklagt sich, dass der Typ nicht mehr passt.
Wie mache ich dies nun??

Gruss blimaa
 
Zähl doch einfach eine INT oder DINT Variable hoch oder runter. Wenn Du das in Graph machst, brauchst du noch einmal ein Flanke.
z.B.:
1648134762383.png
 
Mit Int-Vergleichern in FUP/KOP konnte man "traditionell" in Step7 classic keine BCD-Zahlen und Words vergleichen und musste z.B. Zählerstände von Countern immer erst auf Int-Zwischenvariablen umkopieren. Irgendwann hat Siemens still und heimlich diese Typprüfung in FUP/KOP Zwangs-deaktiviert, seitdem vergleichen die classic-Programmierer Zählerstände direkt und auch Words(!) munter auf > und < :rolleyes:
In TIA FUP/KOP gibt es nun gar keine Vergleicher für die Legacy-Counter - von Siemens vergessen oder absichtliches Systemverhalten?? In TIA muß man nun generell über Zwischenvariablen gehen, man darf aber freundlicherweise Int-Variablen an den Counter-Ausgängen verschalten.

Bei Deinem Vergleicher ist aber nicht nur, daß Du den Counter nicht verschalten kannst, sondern auch die BCD-Zahlen C#.. sind nicht zulässig. Da darfst Du aber einfach C#.. ändern zu 16#.., was von TIA sogar freundlicherweise als Int interpretiert wird, wenn der andere Vergleicher-Operand eine Int-Variable ist. Du kannst auch die Zählerstands-Zwischenvariable am DUAL-Ausgang des Counters verschalten und dann mit Dezimalzahlen vergleichen.

Harald
 
Zuviel Werbung?
-> Hier kostenlos registrieren
PS: TIA wäre nicht TIA, wenn da mal die Doku korrekt wäre... :rolleyes:
TIA V15.1: Bei S7-300/400 steht in der Hilfe zu den FUP/KOP-Vergleichern, daß man Bitfolgen (Word...) nur mit == und <> vergleichen darf. Bei <, <=, >, >= sind Bitfolgen löblicherweise nicht als zulässige Operanden aufgeführt (nur Ganzzahlen und Gleitpunktzahlen), ABER natürlich lässt FUP/KOP das auch für Words ohne Meckern zu ... 🤦‍♂️

Harald
 
Der Counter vergleicht das Kameraprogramm. Dies ist ein altes Programm und dieser Teil wurde vom Kunden in Graph programmiert. Wir programmieren normlerweise nicht in Graph und das Programm sollte eigentlich nur auf TIA hochgerüstet werden... ;)

Ich probiers mal mit MOVE.
Besten Dank.
 
Der Counter vergleicht das Kameraprogramm.
Ich weiss nicht so recht, wie das gemeint ist. Könnte vielleicht so zu deuten sein, dass die Kamera bzw. das KameraProgramm irgendwelche Informationen in BCD-Codierung von sich gibt und deshalb in der SPS die Verwendung von Countern gewählt wurde?
Der ZahlenBereich der Counter ist 0..999.
Diese Zahlen lassen sich natürlich korrekt miteinander vergleichen, wenn man einen INT-Vergleich vornimmt und beide zu vergleichenden Zahlen in dem eigentlich unpassenden und somit "missbrauchten" DatenTyp INT vorliegen.
Der ZahlenBereich, der sich so vergleichen lässt, erstreckt sich auf 0..7999, wie gesagt, wenn beide zu vergleichenden Zahlen in Wirklichkeit BCD-codiert sind.
 
Zurück
Oben