C# TC3 Ads .Net RpcMethod

Commander_Titte

Level-1
Beiträge
121
Reaktionspunkte
17
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,
habe mich an das Thema Rpc Method heran gewagt. Das Beispiel auf der infosys von Beckhoff diente als Basis. Im Grunde habe dieses eins zu eins nachgebaut.
Also am Pou Main die Methode M_add erstellt. Zugriff auf public gesetzt und das Attribut RpcEnabled hinzugefügt.

Auf der .Net Seite wie folgt den Aufruf gestartet:

var result = (short) tcClient.InvokeRpcMethod("Main", "M_add", new object[]{(short)4,(short)8};

Beim Ausführen der Zeile bekomme ich eine Exception:
Wert darf nicht NULL sein. Parameter: Symbol

Habe bis jetzt kein Lösungsansatz. Muss die Rpc Geschichte noch irgendwo freigegeben oder registriert werden? Hoffe von euch kann mir einer helfen.

Gruss Christoph
 
Hi Christoph,
habe es selbst noch nicht ausprobiert, aber m.E. gehören Methoden zu Funktionsblöcke... ich weiß nicht ob eine Method an einem Programm das richtige ist und nach IEC 61131-3 überhaupt zulässig..
Hast du mal einen Funktionsblock mit Methode ausprobiert?
Gruß, Neals
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Hi Neals,

habe es mit einen FB getestet. So funktioniert es. Allerdings funktioniert die Methode am POU MAIN innerhalb der PLC.

Dann verstehe ich aber das Beispiel von Beckhoff nicht:

ST:
Code:
// Call a Method that has the following signature (within MAIN Program)


                    {attribute 'TcRpcEnable'}
                    METHOD PUBLIC M_Add : INT
                    VAR_INPUT
                    i1 : INT := 0;
                    i2 : INT := 0;
                    END_VAR

C#
Code:
[COLOR=#0000FF]short[/COLOR] result [COLOR=#666600]=[/COLOR] [COLOR=#666600]([/COLOR][COLOR=#0000FF]short[/COLOR][COLOR=#666600])[/COLOR]client[COLOR=#666600].[/COLOR]InvokeRpcMethod[COLOR=#666600]([/COLOR][COLOR=#880000]"MAIN"[/COLOR][COLOR=#666600],[/COLOR] [COLOR=#880000]"M_Add"[/COLOR][COLOR=#666600],[/COLOR] [COLOR=#0000FF]new[/COLOR] [COLOR=#0000FF]object[/COLOR][COLOR=#666600][][/COLOR] [COLOR=#666600]{([/COLOR][COLOR=#0000FF]short[/COLOR][COLOR=#666600])[/COLOR][COLOR=#818100]1[/COLOR][COLOR=#666600],[/COLOR] [COLOR=#666600]([/COLOR][COLOR=#0000FF]short[/COLOR][COLOR=#666600])[/COLOR][COLOR=#818100]4[/COLOR][COLOR=#666600]});[/COLOR]

Aber so komme ich erstmal weiter. Vielen Dank Neals!

Gruß Christoph
 
Zurück
Oben