Vai al contenuto
PLC Forum


Rilasciata Snap7 1.3.0 (Platform/comfort Release)


Messaggi consigliati

Innanzitutto buon anno a tutti !!!

Abuso di questo forum per il solito annuncio.

Come da oggetto ho pubblicato Snap7 1.3.0 Platform e Comfort release.

Platform

  • Supporto automatico per architetture big/little endian, il detect viene fatto a runtime per cui non sono necessari switch di compilazione. Da questo momento ovunque gira Unix (Linux/BSD etc.) e c'è un'adattatore ethernet virtualmente gira anche Snap7.
  • Supporto per Sun Sparc e Mips
  • Ottimizzata la gestione di Solaris
  • Testato su Arduino YUN (OpenWRT)
  • Test estesi (build e run) su Windows 10 (32/64)
  • Supportato Ubuntu 14.10 (32/64) Kernel 3.17

Comfort

  • Aggiunte classi/funzioni helper per la lettura di variabili tipizzate (.NET/C++/Pascal)
  • Aggiunti esempi Winform .NET (C# e VB) per Visual Studio 2010+
  • Aggiunto progetto Visual Studio per la compilazione di snap7.net.dll (per agevolare gli utenti VB)
  • Aggiunto esempio WinForm "misto" VB+C# per compilare snap7.net.dll nella stessa soluzione del programma VB e gestire al volo framework/architettura.
  • Aggiunto nella documentazione (anche online) un capitolo .NET per approfondire le procedure di interfacciamento contenente anche due esempi (C# e VB) su come leggere una struct del PLC in una .NET.
  • Aggiunto nella documentazione un capitolo sul formato dati (big-endian) del PLC per risolvere il mistero ( :smile:) dei dati sbagliati in lettura.

Un piccolo bugfix :

  • MultiRead con numero di item dispari dava problemi sull'ultimo item con S7400.

Un paio ottimizzazioni:

  • Migliorato il supporto MultiRead/MultiWrite per .NET
  • Verifica di Client connesso prima di ogni operazione.

Potete tranquillamente ricoprire snap7.dll che usate attualmente con la 1.3.0, sono compatibili al 100%

Come sempre

buon divertimento ;)

Davide Nardella

Link al commento
Condividi su altri siti


  • 3 weeks later...
  • 4 weeks later...
Paolo GUerrieri

Buongiorno Davide, ho appena scaricato la nuova release della tua dll, ma in questo punto mi visualizza l'errore riportato di seguito....

[DllImport(S7Consts.Snap7LibName)]
protected static extern IntPtr Cli_Create();
public S7Client()
{
Client = Cli_Create();
}
Errore:

"Tentativo di caricare un programma con un formato non corretto. (Eccezione da HRESULT: 0x8007000B)

se rimetto la dll precedente funziona tutto

Cosa sto sbagliando?

Saluti

Paolo


Mi autorispondo....sono un pistola ....avevo preso la versione 64bit

CHIEDO SCUSA!!! :worthy:

Link al commento
Condividi su altri siti

Figurati, capita anche a me quelle poche volte che uso C# ;)

Purtroppo quello del formato delle DLL esterne (32/64) è un problema annoso per .NET.

Non c'è modo di sapere in anticipo il formato dell'eseguibile se si usa (come è giusto che sia) AnyCPU.

L'unico modo, molto intrusivo, sarebbe quello di avere due DLL tipo snap7_32.dll e snap7_64.dll e poi a runtime caricare con LoadLibrary quella giusta andando a controllare quanti byte occupa IntPtr.

Si tratterebbe di rimappare oltre un centinaio di metodi e non so se lo farò mai (per ora no di sicuro) :smile:

Se qualcuno conosce un metodo più intelligente ... sarebbe gradito

Link al commento
Condividi su altri siti

Crea un account o accedi per commentare

Devi essere un utente per poter lasciare un commento

Crea un account

Registrati per un nuovo account nella nostra comunità. è facile!

Registra un nuovo account

Accedi

Hai già un account? Accedi qui.

Accedi ora
×
×
  • Crea nuovo/a...