Hilfe mit CAN OPEN Layer 2 protocol

Zuviel Werbung?
-> Hier kostenlos registrieren
Sorry muß lauten:
Code:
CAN_Gateway_Config : WagoSysModule_75x_658.WagoTypesModule_75x_658.typFullConfiguration;
wenn man die Types Bibliothek nicht direkt eingebunden hat.

Gruß
 
So,

wenn man ehrlich ist kommt auf diese Weise nicht wirklich immer weiter.

Die WagoAppCanLayer2 ist da ein gutes Beispiel mit dem Eingang I_Port der Funktionsbausteine, wei Du ja bereits feststellen mußtest. Besonders bei Deinem Anwendungsfall.

Zu I_Port steht in der Doku zum Baustein der Bibliothek
I_Port | WagoTypesCan.I_WagoSysCanBase | CAN port, either the internal pfc port or the K-Bus port provided by the module 750-658
OK, ist also dafür da den richtigen Port/das richtige Modul zuzuweisen, aber woher bekommen?

Zum Glück steht in der Doku zur Bibliothek im Abschnitt 10 Documentation:
Onboard interface:

Input I_port from the function blocks must be assigned by either WAGO_CAN_Layer2_Device, WAGO_CanOpen_Slave or WAGO_CanOpen_Manager.

Also mal auf den Eingang und F2 drücken, siehe da unter IoConfigGlobals gibt es WAGO_CAN_Layer2_Device.

Das wäre also die interne Schnittstelle, aber es gibt ja noch die externe Klemme 658 und im Abschnitt 10 Documentation gibt es auch etwas dazu:
The function block FbModuleConfigurationAndStatus from library WagoSysModule_75x_658 must be used and executed in each plc cycle.

If the module is used in Mapped mode, IO data must be processed using function block FbModuleMappedModeIO_Access from library WagoSysModule_75x_658. Direct IO access is strictly forbidden.

Also muß zur korrekten Verwendung der Funktionsbaustein FbModuleMappedModeIO_Access verwendet werden. Aber zum I_Port steht dort nichts.

Jetzt kann man sich noch einmal mit F2 die verfügbare Auswahl ansehen. Wenn man die Klemme 658 einbindet erscheint dort auf einmal noch CAN_Device. Man kann das ja mal damit versuchen. Unter dem Namen erscheint ja die Klemme auch in der Gerätestruktur.

Andererseits kann man sich noch einmal die Definition des Eingangs am Baustein ansehen
I_Port | WagoTypesCan.I_WagoSysCanBase | CAN port, either the internal pfc port or the K-Bus port provided by the module 750-658
Also ist der Eingang I_Port vom Typ WagoTypesCan.I_WagoSysCanBase. WagoTypesCan deutet an, daß der Datentyp in einer Bibliothek mit Namen WagoTypesCan definiert werden muß. Also mal dort nachsehen.

Dort gibt es tatsächlich I_WagoSysCanBase, aber das ist ist ein Interface! Woher soll man bitte wissen welche Funktionsbausteine in welchen Bibliotheken denn nun dieses Interface implementieren!

Sehen wir uns dazu noch einmal CAN_Device unter IoConfig_Globals an:
IoConfig_Globals.CAN_Device | WagoSysModule_75x_658.FbModule_75x_658

Ist also ein Funktionsbaustein aus der Bibliothek WagoSysModule_75x_658. Dort in der Doku steht aber nichts davon, daß die Schnittstelle von oben implementiert wird. Und selbst wenn, müßte man ja jeden einzelnen Biblioheksbaustein danach durchsuchen.

Das wichtigste was dort erwähnt wird ist
Access to the CAN gateway module 750-658 This block is needed for each module. The instance of this function block is either automatically generated by the K-Bus configuration or has to be manually added in case of the dynamic configuration.
Aber nicht, daß die Instanz des Bausteins an den Eingang I_Port geschaltet werden muß.

Das gleiche für das interne Interface. Dort haben wir den Typ CanCfg.FbCanInterface.

Iteressant wird es dann noch wenn man sich den Baustein FbModuleConfigurationAndStatus dazu ansieht. Dort gibt es auch einen I_Port
I_Port | WagoTypesModule_75x_658.I_WagoModule_75x_658Extended | Access to the module
Wieder ein Interface als Typ. Kann man da jetzt dieselbe IoConfig_Globals Variable nehmen oder nicht?

Da muß WAGO, wie eigentlich überall in der Doku, noch kräftig nachbessern und/oder Beispiele bringen.

Also zum Schluß noch einmal: Es ist nicht wirklich leicht sich da die richtigen Variablen dranzuschreiben. Die zusätzliche Verwendung von OOP macht es dazu auch nicht leichter.

Gruß
 
Zurück
Oben