Hallo,
Ich benutze mein Panel als Schnittstelle zwischen einer Allen Bradley Logix CPU und einer Siemens S7 300 CPU.
Ich habe zur Zeit es so Programmiert das ich jeweils eine Menge Bit´s im Sekundentakt über ein Script hin und her schicke. Funktioniert ohne Probleme.
Also so geht es z.b. hier mit den Bits.
If SmartTags("DB 100 DBX 20.0") = True Then
SetBit SmartTags("SignalAB1[0]/0")
End If
If SmartTags("DB 100 DBX 20/0") = False Then
ResetBit SmartTags("SignalAB1[0]/0")
End If
usw....
Kann mir hier vielleicht jemand erklären wie ich z.b. ein Byte und ein INT verschieben kann über ein Script.
in AWL klingt das so einfach.
L DB100.DBB20.0
T SignalAB1[0]
Ich habe doch sehr Probleme mit der VB Sprache. Vielleicht auch ein bisschen mit der Deutschen
Und was muss man beachten wenn mehrere Aufrufe aufeinander Folgen
Danke,
Johannes
nur so am rande
welches panel
und welche software
prootool
wincc
winflex
Hallo Johannes,
vielleicht solltest du ganz grundsätzlich überlegen, deine Operanden symbolisch (der eigentlichen Funktion entsprechend) zu benennen.
Aber das nur am Rande.
Bytes und Worte und Doppelworte werden mit "=" übertragen, also :GrußCode:SmartTags("DB 100 DBW 24") = SmartTags("DB 101 DBW 124") SmartTags("DB 100 DBB 14") = SmartTags("DB 101 DBB 114")
LL
joelber (01.02.2009)
WinCC Flexible 2007 Runtime auf einem Panel PC mit Soft SPS ist verbunden mit einer Allen Bradley Logix.
Ich brauch halt nur ein VB Script um Byte´s und Int´s aus meiner S7 in die Allen Bradley zu schieben und umgekehrt. Dies habe ich ja mit bits ausprobiert und funktioniert ohne probleme.
natürlich benutze ich Symbolik, habs halt nur hier rausgenommen.
SmartTags("DB 100 DBW 24") = SmartTags("DB 101 DBW 124")
SmartTags("DB 100 DBB 14") = SmartTags("DB 101 DBB 114")
OKAY, ich hatte es so ausprobiert mit dem (=) hat aber nicht funktioniert, da habe ich mit gedacht ein (=) klingt ja auch viel zu einfach.
Bekomme eine Art Überlauf Fehlermeldung
Danke Larry für deine Information !
So Hatte ich das Script ausprobiert:
SmartTags("DB 100 DBB 20") = SmartTags("Signal_an_Allenbradleybyte[0]")
SmartTags("Signal_von_Allenbradleybyte[1]") = SmartTags("DB 100 DBB 21")
Das Script wurde im 500 ms Takt abgerufen und ich bekam in meinem Störungsfenster im sehr schnellen Takt Überlauffehlermeldung. (Ich weiss jetzt nicht mehr genau was es genau für fehler waren. muss ich gleich nochmal überprüfen.
Vielleicht sollte ich einfach einen Takt von ca 2 - 5 Sekunden ausprobieren ?
zumdem sollten nachher nicht nur 2 bytes hin und her geschickt werden, sondern ca 18 bytes und 18 Wörter (als Integer) und zwar in einem Takt, so schnell wie möglich..
Gruß,
Johannes
Hallo Johannes,
ich vermute, dass die besagte Überlauf-Fehlermeldung viel mehr etwas mit der WinCCFlexibel eigenen Script-Bearbeitung zu tun hat. Es können nur eine bestimmte Anzahl von Scripten gestartet werden (Aufgabenstack). Ich meine es wären 20. Außerdem wird immer nur ein Script bearbeitet - das heißt, dass solange wie Script_1 in Bearbeitung ist wird zwar Script_2 (und _3 etc.) in dem Aufgabenstack übernommen, sie werden aber erst bearbeitet wenn Script_1 fertig (beendet) ist. Der von dir geannte Überlauf könnte also auch der Max.-Stack (20 Scripte) sein. Kannst du das mal checken ?
Gruß
LL
joelber (01.02.2009)
Bookmarks