Autor Beitrag
holger
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 46

W2K pro, XP pro
Delphi 6, Delphi 2007
BeitragVerfasst: So 04.07.10 11:24 
Hallo ihr immer so hilfreichen Delphiprogrammierer :D

Ich habe schon wieder mal ein Problem.

Die Firma Beckhoff bietet eine Net-Komponente zum freien Download an, mit welcher man auf deren SPSen zugreifen kann.

beckhoff.de/ -> download -> software -> twincat supplement ->communication -> TwinCAT ADS-Communication Library

Leider habe ich es noch nicht hin bekommen, diese Komponenten für mich nutzbar zu machen. Habe noch keine Ahnung von Komponenten und net....




Beckhoff beschreibt folgendes Vorgehen:

Einbinden in Borland Developer Studio 2006
Um die Klassenbibliothek TwinCAT.Ads zu selektieren müssen Sie das Kommando Add Reference... des Project -Menus auswählen. Dies öffnet den Add Reference Dialog.
. . .
In diesem Dialog müssen Sie den Browse... Button betätigen und die Datei TwinCAT.Ads.dll auswählen. Im Project Manager kann man überprüfen, ob die Komponente zu der Liste der Referenzen hinzugefügt worden ist.
. . .
Alle Typen der Klassenbibliothek gehören zum Namespace TwinCAT.Ads. Dieses Namespace muss im im uses-Abschnitt hinzugefügt werden:
. . .



Da ich mit Delphi 2007 (Code Gear RAD Studio Professional) arbeite, muß das offensichtlich ein kleinwenig anders gehen.

Komponenten -> Komponente importieren -> Net.-Assemblierung importiern oder Typbibliothek importieren oder Aktiv-X-Steuerelement importieren.
Richtig?

Ich habe einiges ausprobiert. Ich bekomme auch eine UNIT erzeugt, welche aber nicht funktioniert.
Der Kopf siehtmeistens so oder ähnlich aus:

// ************************************************************************ //
// Type Lib: D:\Programme\TwinCAT\ADS Api\.NET\v1.1.4322\TwinCAT.Ads.dll (1)
// LIBID: {89381B7A-A304-3557-9FAD-B7EE79E8AD87}
// LCID: 0
// Helpfile:
// HelpString: TwinCAT Ads Component
// DepndLst:
// (1) v2.0 stdole, (D:\WINNT\system32\STDOLE2.TLB)
// (2) v2.0 mscorlib, (D:\WINNT\Microsoft.NET\Framework\v2.0.50727\mscorlib.tlb)
// Errors:
// Hint: Symbol 'Type' renamed to 'type_'
// Error creating palette bitmap of (TAdsException) : Server mscoree.dll contains no icons
.... und viele weitere Error-Zeilen.


Ich versuchte es schon auf einem XP-Rechner und einem w2000-Rechner. Immer dieses oder ein ähnliches Ergebnis.

Das Net-Framework habe ich auch schon von dessen Assistenten reparieren lassen. Keine Besserung.

Diese beiden Dateien sind in meinem System auch vorhanden.
(1) v2.0 stdole, (D:\WINNT\system32\STDOLE2.TLB)
(2) v2.0 mscorlib, (D:\WINNT\Microsoft.NET\Framework\v2.0.50727\mscorlib.tlb)


Bevor ich als ahnungsloser die Leute bei Beckhoff verrückt mache, welche eigentlich nur mit mit VB arbeiten.
versuche ich es hier, wo ich eigentlich immer Hilfe bekommen habe.

Kann mir jemand sagen, wie ich richtig vorgehen muss :?:

Vielen Dank für eure Bemühungen im Voraus

Holger
holger Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 46

W2K pro, XP pro
Delphi 6, Delphi 2007
BeitragVerfasst: So 04.07.10 21:51 
Z.Z. gehe ich so vor:

Ich importiere die TwinCAT_Ads_TLB.DLL als NET-Assemblierung.
Es wird eine Unit erzeugt.
Ich kann mein Programm allerdings nicht compilieren, weil in der USES-Anweisung der Unit TwinCAT_Ads_TLB
nun die mscorlib_TLB gesucht und nicht gefunden wird.

Nun importiere ich auch noch die passende
D:\WINNT\Microsoft.NET\Framework\v1.1.4322\mscorlib.dll
- richtig?

Und darin steht nun eine ganze Latte von Fehlermeldungen:

ausblenden volle Höhe Delphi-Quelltext
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33:
34:
35:
36:
37:
38:
39:
40:
41:
42:
43:
44:
45:
// $Rev: 8291 $
// File generated on 04.07.2010 19:46:12 from Type Library described below.

// ************************************************************************  //
// Type Lib: D:\WINNT\Microsoft.NET\Framework\v1.1.4322\mscorlib.dll (1)
// LIBID: {BED7F4EA-1A96-11D2-8F08-00A0C9A6186D}
// LCID: 0
// Helpfile: 
// HelpString: mscorlib.dll
// DepndLst: 
//   (1) v2.0 stdole, (D:\WINNT\System32\STDOLE2.TLB)
// Errors:
//   Hint: Symbol 'Object' renamed to 'CLRObject'
//   Hint: Symbol 'Array' renamed to 'CLRArray'
//   Hint: Symbol 'Enum' renamed to 'CLREnum'
//   Hint: Symbol 'String' renamed to 'CLRString'
//   Hint: Symbol 'Exception' renamed to 'CLRException'
//   Hint: Symbol 'Boolean' renamed to 'CLRBoolean'
//   Hint: Symbol 'Byte' renamed to 'CLRByte'
//   Hint: Symbol 'Char' renamed to 'CLRChar'
//   Hint: Symbol 'Double' renamed to 'CLRDouble'
//   Hint: Symbol 'Guid' renamed to 'CLRGuid'
//   Hint: Symbol 'Int16' renamed to 'CLRInt16'
//   Hint: Symbol 'Int32' renamed to 'CLRInt32'
//   Hint: Symbol 'Int64' renamed to 'CLRInt64'
//   Hint: Symbol 'Type' renamed to 'CLRType'
//   Hint: Symbol 'Single' renamed to 'CLRSingle'
//   Hint: Symbol 'Void' renamed to 'CLRVoid'
//   Hint: Symbol 'Pointer' renamed to 'CLRPointer'
//   Hint: TypeInfo 'File' changed to 'File_'
//   Hint: TypeInfo 'Label' changed to 'Label_'
//   Hint: Parameter 'Array' of ICollection.CopyTo changed to 'Array_'
//   Hint: Parameter 'Type' of _Type.GetMember changed to 'Type_'
//   Hint: Symbol 'Type' renamed to 'type_'
//   Hint: Parameter 'Type' of _Assembly.GetManifestResourceStream changed to 'Type_'
//   Hint: Parameter 'Type' of IFormatterConverter.Convert changed to 'Type_'
//   Hint: Parameter 'Type' of ISurrogateSelector.GetSurrogate changed to 'Type_'
//   Hint: Parameter 'Type' of IRegistrationServices.GetProgIdForType changed to 'Type_'
//   Hint: Parameter 'Type' of IRegistrationServices.RegisterTypeForComClients changed to 'Type_'
//   Hint: Parameter 'Type' of IRegistrationServices.TypeRequiresRegistration changed to 'Type_'
//   Hint: Parameter 'Type' of IRegistrationServices.TypeRepresentsComType changed to 'Type_'
//   Hint: Parameter 'or' of ITrackingHandler.MarshaledObject changed to 'or_'
//   Hint: Parameter 'or' of ITrackingHandler.UnmarshaledObject changed to 'or_'
//   Hint: Parameter 'Type' of _Binder.ChangeType changed to 'Type_'
// ************************************************************************ //



Wenn ich jetzt auch noch die D:\WINNT\System32\STDOLE2.TLB importiere, ändert sich anscheinend nichts.

Sind diese Fehlermeldungen etwa eher unwichtig?

Wie auch immer - die Beckhoff-Beispiele bekomme ich nicht zum laufen :motz:

Gruß
Holger
Voxe
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 41

Win XP, Win 7
Delphi 7 prof
BeitragVerfasst: Fr 07.01.11 09:36 
Hallo,

das mit der DLL von TwinCAT mag Käse sein.

Allerdings funktioniert die Kommunikation als ActiveX-Element. Ist beschrieben in "TwinCAT Connectivity - TwinCAT ADS - TwinCAT ADS-OCX.
Dort ist ein Kapitel, Einbinden in Delphi.

Vorsicht, TwinCAT muss auf dem Rechner installert sein.

Viel Spass damit, Voxe
holger Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic star
Beiträge: 46

W2K pro, XP pro
Delphi 6, Delphi 2007
BeitragVerfasst: So 09.01.11 18:37 
Also - ich habe heute nochmal stundenlang probiert.

Mit der Variante TwinCAT_Ads_TLB.DLL komme ich nicht weiter.

Die Variante AdsOcx.ocx (Aktiv-X-Steuerelement) bekomme ich unter Delphi 6 installiert - super.

Unter Delphi 2007 kann ich AdsOcx.ocx installieren, aber das Steuerelement erscheint nicht in meiner Tool-Palette.

Beim Installieren werden die Dateien ADSOCXLib_TLB.dcr und ADSOCXLib_TLB.pas erzeugt. Und wenn ich meinen Suchpfad im Projekt dort hin setze, kann ich die Unit auch verwenden.

Warum installiert mir Delphi dieses Steuerelement nicht in die Tool-Palette ? :nixweiss: :autsch:
Weiß da jemand Rat :?:




Ich wünsche euch allen einen schönen Sonntag abend ;-)