Visualisierung (Touchpanel mit ARM-Prozessor, libnodave, VB2008)

showview_123

Member
Beiträge
12
Punkte Reaktionen
1
Zuviel Werbung?
->Hier kostenlos registrieren
Visualisierung (Touchpanel mit ARM-Prozessor, libnodave oder S7net, VB2008)

Hallo.

Ich habe ein Problem. Ich möchte auf meine SPS mittels Touchpanel zugreifen.

Technische Daten meiner Geräte:
SPS: S7-1212C
Touchpanel mit Intel ARM 920T-PXA2 Prozessor und Windows CE

Ich kann bereits vom PC auf die SPS zugreifen (mittels libnodave).
Vom Touchpanel aus geht der Zugriff nicht.
Die Fehlermeldung auf dem Touchpanel ist folgende:
Code:
NotSupportedException (wenn mit libnodave zugegriffen wird)
Ich weiß schon, dass Zottel in der Beschreibung erwähnt, dass libnodave
nicht mit ARM-Prozessoren arbeitet. Zugleich schreibt er aber über die
Möglichkeit trotzdem darauf zuzugreifen.
(Siehe doc, im Verzeichnis von libnodave)
Compiling Libnodave for ARM processors

Libnodave did not work on ARM processors. It seemed that the processor cannot access a word on a non word boundary (odd address). The following code did not work:

((PDUHeader*)p->header)->plen=daveSwapIed_16(len);

Here the pointer p->header has been set two an odd address. The offset of plen in the structure PDUHeader is even, hence the resulting pointer points at an odd address.
The ARM seems to take the previous lower word boundary instead of the calculated address. It seems that no compiler option could prevent this, possibly because
the final address is the result of a calculation and not known at comile time. The following work around fixes this.

templen=daveSwapIed_16(len);
memcpy(&(((PDUHeader*)p->header)->plen),&templen,sizeof(us));

Memcpy seems to use two subsequent byte accesses and works as expected.
Falls es trotzdem nicht möglich ist mit einem ARM-Prozessor zu arbeiten,
kann vielleicht jemand aus dem Forum mir weiterhelfen.

Weiters habe ich auch versucht mit der Software IPS7Lnk von Träger eine
Verbindung vom Touchpanel aufzubauen.
http://www.traeger.de/softwaretreiber-simatic-s7/ip-s7-link.html

Hier bekomme ich eine andere Fehlermeldung:
Code:
Can't find PInvoke DLL 'ips7lnk.dll'
Am PC funktioniert es aber.

Nun weiß ich wirklich nicht mehr weiter, und hoffe das ihr mir helfen könnt.

Danke.
 
Zuletzt bearbeitet:

Jochen Kühner

Well-known member
Beiträge
4.154
Punkte Reaktionen
474
Also ich habe libnodave fürs iphone compiliert, und damit komm ich online! Und das iphone hat ja auch einen arm prozessor!
 

Rainer Hönle

Well-known member
Beiträge
5.668
Punkte Reaktionen
990
Von ACCON-AGLink gibt es eine Version die unter WinCE (native und mit .net-Wrapper) läuft und die Varianten für x86, ARMV4 und ARMV4i enthält.
 
OP
S

showview_123

Member
Beiträge
12
Punkte Reaktionen
1
Hallo,

Danke für die Rückmeldungen!

Trotz vielem herumprobieren, läufts noch immer nicht (mit libnodave).

Auf die kommerziellen Produkte möchte ich erst dann umsteigen, falls die
OpenSource-Produkte versagen :cool:

Hab es zumindestens geschafft, dass unter libnodave ein:

Code:
Can't find PInvoke DLL 'libnodave.dll'
als Fehlermeldung retour kommt. ;)

Habe auch am Touchpanel die .dll-Dateien ins Windows-Verzeichnis kopiert.
Habe auch auf ein höheres .net-Framework aktualisiert.

--> Alles vergeblich.

Vielleicht weiß, ja jemand anderes einen Tipp!

@ Jochen:
Kannst du mir vielleicht einen Blick auf deinen Code für iphone gewären?

Danke.
 
OP
S

showview_123

Member
Beiträge
12
Punkte Reaktionen
1
Zuviel Werbung?
->Hier kostenlos registrieren
Ich habe in einen anderen Forum (VB) gelesen, dass es auch solche Probleme mit der DLL gegebene hat.

Wie Rainer schon erwähnt, liegt es sicher an der DLL.
Ich verwende die Windows DLL, nicht die CE DLL.

Das wird wahrscheinlich der Fehler sein.

Muss jetzt nur noch eine fertige CE DLL finden, oder selbst kompilieren.

@Georg
Ich verwende VB2008 Pro, bzw. habe ich auch die VB2005 Pro.
 
Zuletzt bearbeitet:

Rainer Hönle

Well-known member
Beiträge
5.668
Punkte Reaktionen
990
Ich habe in einen anderen Forum (VB) gelesen, dass es auch solche Probleme mit der DLL gegebene hat.

Wie Rainer schon erwähnt, liegt es sicher an der DLL.
Ich verwende die Windows DLL, nicht die CE DLL.

Das wird wahrscheinlich der Fehler sein.

Muss jetzt nur noch eine fertige CE DLL finden, oder selbst kompilieren.

@Georg
Ich verwenden VB2008 Pro, bzw. habe ich auch die VB2005 Pro.
Ein native Win32-DLL funktioniert nicht unter WinCE. Dies geht nur mit .net-DLLs. Und zu dieser Kategorie gehört libnodave nicht.
Hier hilft nur für WinCE und den entsprechenden Prozessor kompilieren.
 
OP
S

showview_123

Member
Beiträge
12
Punkte Reaktionen
1
@ Rainer

Danke nochmals für die Info.

Kannst du mir eventuell bei der Kompilierung einer libnodave DLL
für WinCE und ARM helfen.

Wäre wahrscheinlich auch für andere im Forum interessant, wenn
es eine fertige DLL gibt. Vermute ich mal. :cool:

Meine Programmierkenntnisse in VB sind eher bescheiden, und richten
sich in erster Linie auf bunte Fenster mit Knöpfen.

Danke.
 
OP
S

showview_123

Member
Beiträge
12
Punkte Reaktionen
1
Ok.

Dann wende ich mich an alle mit der Bitte:

Kann mir jemand eventuell bei der Kompilierung einer libnodave DLL
für WinCE und ARM helfen.

Danke.
 

Jochen Kühner

Well-known member
Beiträge
4.154
Punkte Reaktionen
474
Mhmm

Du brauchst das platform sdk für wince und die compiler, dann soltest du das makefile anpassen, und dann wirsts compilieren können...
 
OP
S

showview_123

Member
Beiträge
12
Punkte Reaktionen
1
Zuviel Werbung?
->Hier kostenlos registrieren
@ Jochen.

Danke für die Info.

Ich habe VB2005 Pro mit WinCE 6.0 Platformbuilder. Habe ich vom Hersteller des
Touchpanel mitbekommen.
Ich glaube der Platformbuilder ist für das OS.

Ich kann unter VB2005 nur folgendes auswählen
Siehe angehängte Datei.

Ich tippe auf Class Library.

Wie schon gesagt sind meine Programmierkenntnisse auf diesem Gebiet mager.

Ich hoffe du kannst mir bitte weiterhelfen.

Falls du Skype hast, schick mir bitte per PN deine Kennung, sofern erwünscht.

Danke nochmals.
 

Anhänge

  • VB2005_Auswahl.jpg
    VB2005_Auswahl.jpg
    101,4 KB · Aufrufe: 21
Oben