Siemens
Digital Industries, Motion Control, Machine Tool Systems
8840
Follower:innenPlc Eingang abfragen
23.03.2017, 01:57 Uhr
Hallo,
Ich arbeite an einem Drehautomat mit 840d Steuerung
und möchte den PLC Eingang 39.7 im Teileprogramm
abfragen ob 1 oder 0.
Mit der einfachen Schreibweise hab ich leider kein Erfolg.
If $A_IN[39.7]==1 goto Label
Ich arbeite an einem Drehautomat mit 840d Steuerung
und möchte den PLC Eingang 39.7 im Teileprogramm
abfragen ob 1 oder 0.
Mit der einfachen Schreibweise hab ich leider kein Erfolg.
If $A_IN[39.7]==1 goto Label
23.03.2017, 10:02 Uhr
Hallo,
Ich arbeite an einem Drehautomat mit 840d Steuerung
und möchte den PLC Eingang 39.7 im Teileprogramm
abfragen ob 1 oder 0.
Mit der einfachen Schreibweise hab ich leider kein Erfolg.
If $A_IN[39.7]==1 goto Label
Ich arbeite an einem Drehautomat mit 840d Steuerung
und möchte den PLC Eingang 39.7 im Teileprogramm
abfragen ob 1 oder 0.
Mit der einfachen Schreibweise hab ich leider kein Erfolg.
If $A_IN[39.7]==1 goto Label
hi
WHEN DO sollte hier die Lösung darstellen
--------------------
MfG
Andy
-------------------------------------------------------------------------------------------------------------------------
4 BIT NC, Kugelschrittschaltwerk
Numerik 600 + Lochstreifen
und nun nicht weiter gekommen als bis zur Sinumerik ;-)
PS : Ich hasse R- Parameter ! Aus Rxxx wird unter Beachtung der Mond-Parabel und der "ERDschen" Glockenkurve nach der Division mit PI/8 + Werkhallenhöhe ein neuer sinnvoller Parameter Rxxx
Impressum: Wer Rechtschreib- oder Grammatikfehler findet darf sie behalten, sind kostenlose Beigaben des Autors
Andy
-------------------------------------------------------------------------------------------------------------------------
4 BIT NC, Kugelschrittschaltwerk
Numerik 600 + Lochstreifen
und nun nicht weiter gekommen als bis zur Sinumerik ;-)
PS : Ich hasse R- Parameter ! Aus Rxxx wird unter Beachtung der Mond-Parabel und der "ERDschen" Glockenkurve nach der Division mit PI/8 + Werkhallenhöhe ein neuer sinnvoller Parameter Rxxx
Impressum: Wer Rechtschreib- oder Grammatikfehler findet darf sie behalten, sind kostenlose Beigaben des Autors
23.03.2017, 16:30 Uhr
Wie ist dan da die Schreibweise???
23.03.2017, 17:31 Uhr
23.03.2017, 21:28 Uhr
kommt der befehl when und do nicht nur in synchronaktionen vor ??
23.03.2017, 21:56 Uhr
nixalsverdruss
Level 7 = Community-Professor
Gruppe: Mitglied
Mitglied seit: 16.11.2003
Beiträge: 1.511
Mitglied seit: 16.11.2003
Beiträge: 1.511
If $A_IN[39.7]==1 goto Label
weder mit WHEN DO oder sonst was wird das funktionieren.
PLC Eingänge können so nicht abgefragt werden.
$A_IN[X] werden die Schnellen digitalen Eingänge der NCU abgefragt . keine PLC Peripherie.
um PLC Peripherie abzufragen gibt es $A_PBB_IN und es können nur ganze Byte gelesen werden einzelne Bit muss man mit B_AND aus werten.
zu $A_PBB_IN gehören die Maschinendaten MD10394 $MN_PLCIO_NUM_BYTES_IN und MD10395
$MN_PLCIO_LOGIC_ADDRESS_IN
24.03.2017, 00:24 Uhr
stimmt! Mit when do hatte ich leider keinen Erfolg.
Geht es nicht einfacher???
Es ist eine gildemeister und es gibt eine Hersteller
Bedingte M- Funktion. Da geht's!
Problem dabei ist aber das diese M-Funktion
Bei Eingang 1 das Programm durchlaufen lässt
Und bei 0 einen Lesehalt macht bis der Eingang auf 1 geht!
Ich möchte jedoch einen sprungbefehl ausüben.
M80=397
Geht es nicht einfacher???
Es ist eine gildemeister und es gibt eine Hersteller
Bedingte M- Funktion. Da geht's!
Problem dabei ist aber das diese M-Funktion
Bei Eingang 1 das Programm durchlaufen lässt
Und bei 0 einen Lesehalt macht bis der Eingang auf 1 geht!
Ich möchte jedoch einen sprungbefehl ausüben.
M80=397
24.03.2017, 06:43 Uhr
stimmt! Mit when do hatte ich leider keinen Erfolg.
Geht es nicht einfacher???
Geht es nicht einfacher???
Es geht so nicht nixalsverdruss hat das gut erklärt warum
Einfache Weg, PLC muss dir den Signal durchschleifen entweder auf nen schnellen Eingang $A_IN oder auf einen dual Port RAM DBB.
MD10394
MD10395
müssen richtig konfiguriert sein und mit der PLC übereinstimmen.
So oder so kommst um eine PLC Anpassung nicht rum, wenn das Signal dir, nicht jetzt schon, zu Verfügung steht
--------------------
Schaut doch mal rein:
Mein Youtube Kanal
Anwendungen, Zyklen, CAD/CAM
-----------------------------------------------------------------------------------------------------------------------------
Mein Youtube Kanal
Anwendungen, Zyklen, CAD/CAM
-----------------------------------------------------------------------------------------------------------------------------
25.03.2017, 07:35 Uhr
Wie macht es dan diese M-Funktion???
Werds am Montag mal versuchen.
Danke schonmal.
Werds am Montag mal versuchen.
Danke schonmal.
25.03.2017, 08:07 Uhr
Wie macht es dan diese M-Funktion???
Werds am Montag mal versuchen.
Danke schonmal.
Werds am Montag mal versuchen.
Danke schonmal.
Guten Morgen,
genauso, wie nixalsverdruss es beschrieben hat.
Nur das in der entsprechenden Datei im DEF.DIR via
DEFINE <NAME> AS <Programmcode>
eingetragen wird.
DEFINE M123 AS "Unterprogramm-Name"
Das bedeutet das M1233 den Codeteil als Unterprogramm oder Zyklus welches diese Abfragefunktion enthält.
Ebenso ist es möglich zB die M-Funktionen M5 und M9 ( Spindelstop und Kühlmittel aus ) zu einem neuen M- Befehl zusammen zufassen.
DEFINE M95 AS M5 M9
Natürlich muss die Funktionsauslösung deines M- Befehls den kompletten Programmcode enthalten. Sprünge in weitere Unterprogramme sind zu vermeiden, wenn dieses Unterprogramm nicht immer verwendet wird, und das daraus aufgerufene Unterprogramm nicht immer in der NC geladen ist. Wichtig dabei ist auch, dass der mit DEFINE definierte neue Befehl nicht schon verwendet wird.
Aber Vorsicht ! Erst das Unterprogramm ( welches im Unterprogrammordner liegen kann / muss, oder sich im Ordner CUS.DIR befindet ) testen, bevor du das via neuer M - Zuweisung ausführst !
Weiter Hilfe dazu findest du in der Programmieranleitung Arbeitsvorbereitung im Kapitel 2.18.
Schönes Wochenende
R.HEIM
25.03.2017, 08:15 Uhr
Super, Danke
Werd mich nächste Woche nochmal melden.
Werd mich nächste Woche nochmal melden.
25.03.2017, 08:20 Uhr
Wie macht es dan diese M-Funktion???
Werds am Montag mal versuchen.
Danke schonmal.
Werds am Montag mal versuchen.
Danke schonmal.
Wie du ja selbst sagts, die M Funktion löst ein Einlesehalt aus bis der Eingang auf 1 ist, solang passiert nichts.
M Funktion stoßt die PLC an etwas zu tun in eben diesem Baustein für M80 ist ein Einlesehalt programmiert.
Wie gesagt PLC anpassen, 39.7 auf einen schnellen Eingang durchschleifen lassen und fertig. Sollte kein großer Akt sein.
Andere Variante wäre ausführen einer COM Datei
CODE
Mit dem Befehl RNP (Read NC PLC) können NC- oder PLC-Variable oder Maschinendaten
gelesen werden.
Mit dem Befehl WNP (Write NC PLC) können NC- oder PLC-Variable oder Maschinendaten
geschrieben werden.
gelesen werden.
Mit dem Befehl WNP (Write NC PLC) können NC- oder PLC-Variable oder Maschinendaten
geschrieben werden.
Sprich erst den DB39.7 mit RNP in ne Variable lesen, mit WNP beispiel ein R Parameter beschreiben und danach zurück ins Programm und auf den R Parameter reagieren.
Ist aber nicht sonderlich konventionell und sicher einfacher über PLC zu lösen
--------------------
Schaut doch mal rein:
Mein Youtube Kanal
Anwendungen, Zyklen, CAD/CAM
-----------------------------------------------------------------------------------------------------------------------------
Mein Youtube Kanal
Anwendungen, Zyklen, CAD/CAM
-----------------------------------------------------------------------------------------------------------------------------
25.03.2017, 09:44 Uhr
Hi
habe ich das richtig verstanden ?
Wenn du in dein Programm
M80=397
schreibst, wartet die Maschine, bis der PLC Eingang auf 1 wechselt. OK
Aber was ist nun mit dem Sprungbefehl ?
Er soll also wenn das BIT von 0 auf 1 springt den Code in "LABEL" ausführen ?
Oder was ist das Ziel dieser Übung ?
Soll das Programm ohne die Verzögerung von M80 weiterlaufen solange das BIT nicht auf 1 steht, und nur im Falle, dass an der Programmstelle das BIT schon auf 1 ist diesen Sprung auslösen ?
habe ich das richtig verstanden ?
Wenn du in dein Programm
M80=397
schreibst, wartet die Maschine, bis der PLC Eingang auf 1 wechselt. OK
Aber was ist nun mit dem Sprungbefehl ?
Er soll also wenn das BIT von 0 auf 1 springt den Code in "LABEL" ausführen ?
Oder was ist das Ziel dieser Übung ?
Soll das Programm ohne die Verzögerung von M80 weiterlaufen solange das BIT nicht auf 1 steht, und nur im Falle, dass an der Programmstelle das BIT schon auf 1 ist diesen Sprung auslösen ?
--------------------
MfG
Andy
-------------------------------------------------------------------------------------------------------------------------
4 BIT NC, Kugelschrittschaltwerk
Numerik 600 + Lochstreifen
und nun nicht weiter gekommen als bis zur Sinumerik ;-)
PS : Ich hasse R- Parameter ! Aus Rxxx wird unter Beachtung der Mond-Parabel und der "ERDschen" Glockenkurve nach der Division mit PI/8 + Werkhallenhöhe ein neuer sinnvoller Parameter Rxxx
Impressum: Wer Rechtschreib- oder Grammatikfehler findet darf sie behalten, sind kostenlose Beigaben des Autors
Andy
-------------------------------------------------------------------------------------------------------------------------
4 BIT NC, Kugelschrittschaltwerk
Numerik 600 + Lochstreifen
und nun nicht weiter gekommen als bis zur Sinumerik ;-)
PS : Ich hasse R- Parameter ! Aus Rxxx wird unter Beachtung der Mond-Parabel und der "ERDschen" Glockenkurve nach der Division mit PI/8 + Werkhallenhöhe ein neuer sinnvoller Parameter Rxxx
Impressum: Wer Rechtschreib- oder Grammatikfehler findet darf sie behalten, sind kostenlose Beigaben des Autors
25.03.2017, 13:26 Uhr
Ich möchte vom Prinzip her wenn der Bit auf 0 steht unterprogramm 1 aufrufen und wenn der Eingang 1 hat unterprogramm 2 bzw. wenn 0 dann einfach durchlaufen und bei 1 nen Sprung machen.
25.03.2017, 14:37 Uhr
Ich möchte vom Prinzip her wenn der Bit auf 0 steht unterprogramm 1 aufrufen und wenn der Eingang 1 hat unterprogramm 2 bzw. wenn 0 dann einfach durchlaufen und bei 1 nen Sprung machen.
27.03.2017, 20:08 Uhr
So, schönen guten Abend.
Habs heute versucht aber leider keinen Erfolg gehabt.
Immer wenn ich in den Maschinen Daten
PLCIO_LOGIC_ADDRESS_IN = 39
PLCIO_NUM_BYTES_IN = 1
Eingebe, bekomme ich ne Fehler Meldung
4252 Plcio Lesefehler.
Was mach ich falsch???
Oder ist es irgendwie noch gesperrt???
Habs heute versucht aber leider keinen Erfolg gehabt.
Immer wenn ich in den Maschinen Daten
PLCIO_LOGIC_ADDRESS_IN = 39
PLCIO_NUM_BYTES_IN = 1
Eingebe, bekomme ich ne Fehler Meldung
4252 Plcio Lesefehler.
Was mach ich falsch???
Oder ist es irgendwie noch gesperrt???
27.03.2017, 22:02 Uhr
nixalsverdruss
Level 7 = Community-Professor
Gruppe: Mitglied
Mitglied seit: 16.11.2003
Beiträge: 1.511
Mitglied seit: 16.11.2003
Beiträge: 1.511
Was mach ich falsch???
Oder ist es irgendwie noch gesperrt???
Oder ist es irgendwie noch gesperrt???
Die Maschinendaten MD10394 $MN_PLCIO_NUM_BYTES_IN und MD10395
$MN_PLCIO_LOGIC_ADDRESS_IN müssen konsistent zur PLC-seitigen Projektierung
sein.
gehen wir mal davon aus das du kein EB 39 hast.
wie kommst du überhaupt auf Eingang 39.7 ?
28.03.2017, 07:58 Uhr
Eingang 39.7 ist laut meinem Elektriker ein freier Eingang und ich hab mir einen Schalter einbauen lassen um den Eingang zu betätigen.
Im PLC Status funktioniert es!
Im PLC Status funktioniert es!
28.03.2017, 08:02 Uhr
Eingang 39.7 ist laut meinem Elektriker ein freier Eingang und ich hab mir einen Schalter einbauen lassen um den Eingang zu betätigen.
Im PLC Status funktioniert es!
Im PLC Status funktioniert es!
PLC Anpassen, den Eingang auf einen schnellen Eingang legen. Fertig
--------------------
Schaut doch mal rein:
Mein Youtube Kanal
Anwendungen, Zyklen, CAD/CAM
-----------------------------------------------------------------------------------------------------------------------------
Mein Youtube Kanal
Anwendungen, Zyklen, CAD/CAM
-----------------------------------------------------------------------------------------------------------------------------
28.03.2017, 08:17 Uhr
Ich weiß leider nicht wie ich auf einen schnellen Eingang komme.
28.03.2017, 08:20 Uhr
Ich weiß leider nicht wie ich auf einen schnellen Eingang komme.
Such dich nen Freelancer PLC/SPS Programmierer oder beim Maschinenhersteller anfragen.
--------------------
Schaut doch mal rein:
Mein Youtube Kanal
Anwendungen, Zyklen, CAD/CAM
-----------------------------------------------------------------------------------------------------------------------------
Mein Youtube Kanal
Anwendungen, Zyklen, CAD/CAM
-----------------------------------------------------------------------------------------------------------------------------
28.03.2017, 08:29 Uhr
Versuch ich schon seit ein paar Wochen, aber die bekommen des irgendwie nicht auf die Kette!
Bin auch schon auf einen Siemens Mitarbeiter zu gegangen aber kam bisher auch noch keine Antwort!
Bin auch schon auf einen Siemens Mitarbeiter zu gegangen aber kam bisher auch noch keine Antwort!
28.03.2017, 10:46 Uhr
nixalsverdruss
Level 7 = Community-Professor
Gruppe: Mitglied
Mitglied seit: 16.11.2003
Beiträge: 1.511
Mitglied seit: 16.11.2003
Beiträge: 1.511
Eingang 39.7 ist laut meinem Elektriker ein freier Eingang und ich hab mir einen Schalter einbauen lassen um den Eingang zu betätigen.
Im PLC Status funktioniert es!
Im PLC Status funktioniert es!
kannst du auch das EB40 in der PLC DIganose sehen ?
ist in MD10500 etwas eingetragen ?
am einfachsten du stellst ein NC Archiv ein dann kann ich mir die MD ansehen
Die Digitalen NC Eingänge müssen nicht unbedingt durch die PLC verteilt werden mann kann die auch an der NCU anklemmen.
Das sollte aber einer anklemmen der weiß was er da macht.
vorher sollte auch geklärt werden ob der Maschinenhersteller einen nicht vorhanden / genutzten NC Eingang als Interrupt für einen ASUP nutzt.
28.03.2017, 13:44 Uhr
EB40 kann ich einsehen steht "00000000"
MD 10500 wird nicht aufgeführt.
Wie stell ich ein nc Archiv ein??
MD 10500 wird nicht aufgeführt.
Wie stell ich ein nc Archiv ein??
28.03.2017, 17:15 Uhr
nixalsverdruss
Level 7 = Community-Professor
Gruppe: Mitglied
Mitglied seit: 16.11.2003
Beiträge: 1.511
Mitglied seit: 16.11.2003
Beiträge: 1.511
EB40 kann ich einsehen steht "00000000"
MD 10500 wird nicht aufgeführt.
Wie stell ich ein nc Archiv ein??
MD 10500 wird nicht aufgeführt.
Wie stell ich ein nc Archiv ein??
äh wie jetzt ?
du erstellst an der Maschine ein Archiv ( Datensicherung) und hängst das hier an eine Betrag an .
Die Datensicherung am besten mit den von dir geänderten werten und dem Fehler , und nicht nur NC sicher alles mit. dann kann man vielleicht in den Log Dateien was sehen
1 Besucher lesen dieses Thema (Gäste: 1)
0 Mitglieder: