ABB 32-bit Gruppeneingang

  • Hallo Leute,


    ich habe folgendes Problem:


    Von einem Servomotor erhalte und sende ich die Bewegungsparameter über jeweils ein dword für Position, Beschleunigung, Verzögerung und Geschwindigkeit.
    Diese Signale sind auf der IRC5 jeweils einem Gruppeneingang / Ausgang zugeordnet.
    nun möchte ich diese Werte für die weitere Verarbeitung in / aus Variablen schreiben. Die normale "num" ist jedoch zu klein. Deshalb wollte ich die "dnum verwenden.
    Leider kann ich diese jedoch nicht so beschreiben wie die "num" :bawling:. Hier ein Beispiel wie ich dies normalerweise mache:


    goDr1SollPos:=nDr1SollPos;
    nDr1IstPos:=giDr1IstPos;


    Kann mir jemand sagen, wie ich dies mit "dnum" - Variabeln machen kann?


    Vielen Dank!


    Marco

  • ANZEIGE
  • Hallo Marco,


    laut Doku müßte es so funktionieren:
    setzen
    SetGO go32Bit, DNumWert;
    vielleicht auch so:
    SetGO go32Bit, 0dDNumWert;


    lesen
    DnumWert:=GInputDnum(Gruppenname);


    Gruß
    Stromer

  • Hi,
    ein blick in die Doku hilft da wunder. ;)
    nd32Bit:=GIutputDnum(gi32Bit) und beim beschreiben der 32Bit müsste das, wie von stromer beschrieben, funktionieren.


    ;)


    Viel Spaß noch.


    Gruß


    Sven

    Wer nichts macht, macht keine Fehler!

    Wer keine Fehler macht, kann nichts daraus lernen!

    Wer nichts lernen kann, kann sich nicht weiterentwickeln!

    Wer sich nicht entwickelt, geht unter!

  • Hallo zusammen,


    vielen Dank für Eure Antworten.


    Ich habe es bei mir so gemacht:


    PERS dnum nAnschlagPos:=0;


    nAnschlagPos:=giDr1IstPos;


    Beim Kompilieren gibt es dann diesen Fehler:


    Fehler 40101 : Typenfehler : Typenkonflikt bei erwartetem Typ dnum und gefundenem Typ signalgi. 31.03.2011 11:21:44 RAPID


    Also eigentlich gemäss Doku... :denk:


    Barucht es dazu eine Softwareoption?

  • Hi,


    dann versuch doch mal nAnschlagPos:=GIutputDnum(giDr1IstPos);


    ... wie schon von Sven vorgeschlagen! (Nein, keine Softwareoption)

  • :wallbash:


    Ok mein Fehler, habe zwar versuch den GI als dnum zu deklarieren, aber nicht auf die Weise.


    Tja wer lesen kann, ist im Vorteil.


    Jetzt funktionierts auch.


    :danke: Vielen Dank für Eure Hilfe!!! :danke:

  • Naja, habe immer im falschen Handbuch nach Hilfe gesucht.


    "Technisches Referenzhandbuch
    RAPID Instruktionen, Funktionen und Datentypen"


    da steht:


    "Um größere Literale als Ganzzahlen zu erhalten, müssen die Präfixe 0d, 0b, 0o und 0x verwendet werden"


    deshalb habe ich immer die version versucht: nAnschlagPos:=0d(giDr1IstPos)


    Tja...

  • Unter Funktionen findest Du unter anderem GInput oder GOutput.
    In der neueren für IRC5 auch die besagte GInputDnum und GOutputDnum. :zwink:


    Gruß


    Sven

    Wer nichts macht, macht keine Fehler!

    Wer keine Fehler macht, kann nichts daraus lernen!

    Wer nichts lernen kann, kann sich nicht weiterentwickeln!

    Wer sich nicht entwickelt, geht unter!

  • ... also bei der IRC5 geht auf jeden Fall folgendes,


    nProduktNr:=giProduktNr;


    ohne die GInputnum Anweisung, komisch das die dann bei einem dnum gebraucht wird!?? :kopfkratz:

  • Ja das liegt an der Datengröße. 16Bit, ein Word, sind nicht so dramatisch aber 32Bit, ein Doppelword, ist vom Speicherbedarf und vom Handling viel interessanter.
    Bist zu 16 Bit geht es mit beiden Möglichkeiten. Entweder der direkten Zuweisung des Gruppeneinganges oder aber man verwendet die Funktion "GInput".
    Aber ich denke das man bei den 32 Bit einen anderen Weg gehen muss.


    Gruß


    Sven

    Wer nichts macht, macht keine Fehler!

    Wer keine Fehler macht, kann nichts daraus lernen!

    Wer nichts lernen kann, kann sich nicht weiterentwickeln!

    Wer sich nicht entwickelt, geht unter!

Hilfe und Support für ABB Roboter Programmierung, Konfiguration, Inbetriebnahme finden Sie hier im ABB Roboter Forum. ABB Rapid Programmierung ist einfach, die Roboterforum Community hilft sehr gerne.

Erstelle ein Benutzerkonto oder melde dich an um zu kommentieren

Du musst ein Benutzerkonto haben um einen Kommentar hinterlassen zu können

Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Geht einfach!
Neues Benutzerkonto erstellen
Anmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden