S7-SoftSPS:PC-Hardwareports mit PLC43.INI einstellen: Unterschied zwischen den Versionen

Aus IBHsoftec Wiki
Wechseln zu: Navigation, Suche
(Die Seite wurde neu angelegt: „'''Installation''' Die Treiber DLL ioport.dll muss im Installationsverzeichnis der ''S7-SoftSPS'' vorhanden sein. In der Datei PLC43.INI, Sektion [OEM], in de…“)
 
 
Zeile 17: Zeile 17:
 
In der Konfigurationsdatei plc43.ini muss die folgende Sektion enthalten sein:
 
In der Konfigurationsdatei plc43.ini muss die folgende Sektion enthalten sein:
  
 +
[ioportdll]
 +
;Folgende Einträge sind möglich (n = laufende Nummer):
 +
;Ausgänge mit Initialwerten vorbelegen. Default: 0=Nein
 +
InitOutputs=0
  
[ioportdll]
+
;Ausgänge bei Stop mit sicheren Werten belegen. Default: 0=Nein
 +
SafeOutputs=0
  
;Folgende Einträge sind möglich (n = laufende Nummer):
+
;Sollen Ausgänge nur bei Änderung in die Hardware geschrieben werden. Default: 0=Nein
 +
BufferOutputs=0
  
;Ausgänge mit Initialwerten vorbelegen. Default: 0=Nein
+
;Zum Verkürzen der Einlesezeit und des Umkopierens in den Prozessabbildern den Bereich
 +
;der Einträge die für Ports gesucht werden, einschränken.
 +
;Bereich Eingang/Ausgangsbyte von ... Default=0
 +
MinByte=0
  
InitOutputs=0
+
;... bis Eingang/Ausgangsbyte. Default=4095
 +
MaxByte=10
  
 +
;Konfiguration der Eingänge (Syntax: Eingabeadresse=I/O Portnummer):
 +
EBn=Portnummer(dez)
 +
EWn=Portnummer(dez)
 +
EDn=Portnummer(dez)
  
;Ausgänge bei Stop mit sicheren Werten belegen. Default: 0=Nein
+
;Konfiguration der Peripherieeingänge (Syntax: Eingabeadresse=I/O Portnummer):
 +
PEBn=Portnummer(dez)
 +
PEWn=Portnummer(dez)
 +
PEDn=Portnummer(dez)
  
SafeOutputs=0
+
;Konfiguration der Ausgänge (Syntax: Ausgabeadresse=I/O Portnummer):
 +
ABn=Portnummer(dez)
 +
AWn=Portnummer(dez)
 +
ADn=Portnummer(dez)
  
 +
;I/O Ports mit Werten initialisieren (Bei InitOutputs=1)
 +
InitABn=Wert(dez)
 +
InitAWn=Wert(dez)
 +
InitADn=Wert(dez)
  
;Sollen Ausgänge nur bei Änderung in die Hardware geschrieben werden. Default: 0=Nein
+
;I/O Ports mit Werten bei SPS Stop belegen (Bei SafeOutputs=1)
 +
SafeABn=Wert(dez)
 +
SafeAWn=Wert(dez)
 +
SafeADn=Wert(dez)
  
BufferOutputs=0
+
;Konfiguration der Peripherieausgänge (Syntax: Peripherieausgabeadresse=I/O Portnummer):
 +
PABn=Portnummer(dez)
 +
PAWn=Portnummer(dez)
 +
PADn=Portnummer(dez)
  
 +
;I/O Ports mit Werten initialisieren (Bei InitOutputs=1)
 +
InitPABn=Wert(dez)
 +
InitPAWn=Wert(dez)
 +
InitPADn=Wert(dez)
  
;Zum Verkürzen der Einlesezeit und des Umkopierens in den Prozessabbildern den Bereich
+
;I/O Ports mit Werten bei SPS Stop belegen (Bei SafeOutputs=1)
 
+
SafePABn=Wert(dez)
;der Einträge die für Ports gesucht werden, einschränken.
+
SafePAWn=Wert(dez)
 
+
SafePADn=Wert(dez)
;Bereich Eingang/Ausgangsbyte von ... Default=0
+
 
+
MinByte=0
+
 
+
;... bis Eingang/Ausgangsbyte. Default=4095
+
 
+
MaxByte=10
+
 
+
 
+
;Konfiguration der Eingänge (Syntax: Eingabeadresse=I/O Portnummer):
+
 
+
EBn=Portnummer(dez)
+
 
+
EWn=Portnummer(dez)
+
 
+
EDn=Portnummer(dez)
+
 
+
 
+
;Konfiguration der Peripherieeingänge (Syntax: Eingabeadresse=I/O Portnummer):
+
 
+
PEBn=Portnummer(dez)
+
 
+
PEWn=Portnummer(dez)
+
 
+
PEDn=Portnummer(dez)
+
 
+
 
+
;Konfiguration der Ausgänge (Syntax: Ausgabeadresse=I/O Portnummer):
+
 
+
ABn=Portnummer(dez)
+
 
+
AWn=Portnummer(dez)
+
 
+
ADn=Portnummer(dez)
+
 
+
 
+
;I/O Ports mit Werten initialisieren (Bei InitOutputs=1)
+
 
+
InitABn=Wert(dez)
+
 
+
InitAWn=Wert(dez)
+
 
+
InitADn=Wert(dez)
+
 
+
 
+
;I/O Ports mit Werten bei SPS Stop belegen (Bei SafeOutputs=1)
+
 
+
SafeABn=Wert(dez)
+
 
+
SafeAWn=Wert(dez)
+
 
+
SafeADn=Wert(dez)
+
 
+
 
+
;Konfiguration der Peripherieausgänge (Syntax: Peripherieausgabeadresse=I/O Portnummer):
+
 
+
PABn=Portnummer(dez)
+
 
+
PAWn=Portnummer(dez)
+
 
+
PADn=Portnummer(dez)
+
 
+
 
+
;I/O Ports mit Werten initialisieren (Bei InitOutputs=1)
+
 
+
InitPABn=Wert(dez)
+
 
+
InitPAWn=Wert(dez)
+
 
+
InitPADn=Wert(dez)
+
 
+
 
+
;I/O Ports mit Werten bei SPS Stop belegen (Bei SafeOutputs=1)
+
 
+
SafePABn=Wert(dez)
+
 
+
SafePAWn=Wert(dez)
+
 
+
SafePADn=Wert(dez)
+
  
  
Zeile 129: Zeile 84:
 
Um eine mögliche Konfiguration darzustellen, wird der Druckerport eines PC dem Prozessabbild der SPS zugeordnet. Der Ausgabeport A (0x378hex = 888dez) wird dem AB0 zugewiesen, der Eingabeport B (0x379hex = 889dez) dem EB0. Der Ausgabeport C (0x37Ahex = 890dez), von dem nur einige Bits auf die Schnittstelle geführt sind, wird den Peripherieeingängen PEB10 und den Peripherieausgängen PAB10 zugewiesen. Eine Initialisierung wird nicht vorgenommen.
 
Um eine mögliche Konfiguration darzustellen, wird der Druckerport eines PC dem Prozessabbild der SPS zugeordnet. Der Ausgabeport A (0x378hex = 888dez) wird dem AB0 zugewiesen, der Eingabeport B (0x379hex = 889dez) dem EB0. Der Ausgabeport C (0x37Ahex = 890dez), von dem nur einige Bits auf die Schnittstelle geführt sind, wird den Peripherieeingängen PEB10 und den Peripherieausgängen PAB10 zugewiesen. Eine Initialisierung wird nicht vorgenommen.
  
 +
[OEM]
 +
dll0=ioport.dll
  
[OEM]
+
[ioportdll]
 
+
InitOutputs=0
dll0=ioport.dll
+
SafeOutputs=0
 
+
BufferOutputs=0
 
+
MinByte=0
[ioportdll]
+
MaxByte=10
 
+
EB0=889
InitOutputs=0
+
PEB10=890
 
+
AB0=888
SafeOutputs=0
+
InitAB0=0
 
+
SafeAB0=0
BufferOutputs=0
+
PAB10=890
 
+
InitPAB0=0
MinByte=0
+
SafePAB0=0
 
+
MaxByte=10
+
 
+
EB0=889
+
 
+
PEB10=890
+
 
+
AB0=888
+
 
+
InitAB0=0
+
 
+
SafeAB0=0
+
 
+
PAB10=890
+
 
+
InitPAB0=0
+
 
+
SafePAB0=0
+
  
  

Aktuelle Version vom 13. Dezember 2012, 08:37 Uhr

Installation

Die Treiber DLL ioport.dll muss im Installationsverzeichnis der S7-SoftSPS vorhanden sein. In der Datei PLC43.INI, Sektion [OEM], in der die Treiber der S7-SoftSPS angegeben werden, muss dieser aufgeführt werden.


[OEM] dll0=ioport.dll


Konfiguration

Die Datei PLC43.INI wird nach allen theoretisch möglichen I/O Adressen der S7-SoftSPS durchsucht. Da dies maximal bis zu 45 Sekunden dauern kann, sollte man die Bereiche auf das Nötige einschränken. Die Ausgänge können sowohl mit Initialwerten vorbelegt werden, als auch mit sicheren Werten, die bei SPS Stop vom Treiber eingestellt werden. Es können sowohl Bytes, Worte als auch Doppelworte konfiguriert werden. Um Doppelbelegungen zu vermeiden, hat der zuerst gefundene Eintrag Vorrang. Wird also beispielsweise ein EW4 gefunden, so wird danach nicht mehr nach dem EB5 gesucht, sondern nach dem EB6. Dies gilt auch für Doppelworte. Überlappungen zwischen Eingängen, Peripherieeingängen, Ausgängen und Peripherieausgängen sind jedoch möglich, da je nach verwendeter Hardware Eingänge und Ausgänge auf der gleichen I/O Adresse liegen können. Alle Eingaben sind dezimal vorzunehmen. Beachten Sie, dass bei falscher Konfiguration Werte in Baugruppen geschrieben werden können, die dafür nicht geeignet sind und hierdurch Schäden an der PC-Hardware entstehen können. Beachten Sie bitte ebenfalls, dass beim Start der S7-SoftSPS der Hardwareportzugriff beim Betriebssystem angemeldet wird. Daher müssen die Ports zwingend in einem zusammenhängenden, freien Bereich liegen und nicht mit existierender Hardware in Konflikt stehen.


Einträge

In der Konfigurationsdatei plc43.ini muss die folgende Sektion enthalten sein:

[ioportdll]
;Folgende Einträge sind möglich (n = laufende Nummer):
;Ausgänge mit Initialwerten vorbelegen. Default: 0=Nein
InitOutputs=0
;Ausgänge bei Stop mit sicheren Werten belegen. Default: 0=Nein
SafeOutputs=0
;Sollen Ausgänge nur bei Änderung in die Hardware geschrieben werden. Default: 0=Nein
BufferOutputs=0
;Zum Verkürzen der Einlesezeit und des Umkopierens in den Prozessabbildern den Bereich
;der Einträge die für Ports gesucht werden, einschränken.
;Bereich Eingang/Ausgangsbyte von ... Default=0
MinByte=0
;... bis Eingang/Ausgangsbyte. Default=4095
MaxByte=10
;Konfiguration der Eingänge (Syntax: Eingabeadresse=I/O Portnummer):
EBn=Portnummer(dez)
EWn=Portnummer(dez)
EDn=Portnummer(dez)
;Konfiguration der Peripherieeingänge (Syntax: Eingabeadresse=I/O Portnummer):
PEBn=Portnummer(dez)
PEWn=Portnummer(dez)
PEDn=Portnummer(dez)
;Konfiguration der Ausgänge (Syntax: Ausgabeadresse=I/O Portnummer):
ABn=Portnummer(dez)
AWn=Portnummer(dez)
ADn=Portnummer(dez)
;I/O Ports mit Werten initialisieren (Bei InitOutputs=1)
InitABn=Wert(dez)
InitAWn=Wert(dez)
InitADn=Wert(dez)
;I/O Ports mit Werten bei SPS Stop belegen (Bei SafeOutputs=1)
SafeABn=Wert(dez)
SafeAWn=Wert(dez)
SafeADn=Wert(dez)
;Konfiguration der Peripherieausgänge (Syntax: Peripherieausgabeadresse=I/O Portnummer):
PABn=Portnummer(dez)
PAWn=Portnummer(dez)
PADn=Portnummer(dez)
;I/O Ports mit Werten initialisieren (Bei InitOutputs=1)
InitPABn=Wert(dez)
InitPAWn=Wert(dez)
InitPADn=Wert(dez)
;I/O Ports mit Werten bei SPS Stop belegen (Bei SafeOutputs=1)
SafePABn=Wert(dez)
SafePAWn=Wert(dez)
SafePADn=Wert(dez)


ACHTUNG: BEACHTEN SIE, DASS BEI FALSCHER KONFIGURATION WERTE IN BAUGRUPPEN GESCHRIEBEN WERDEN KÖNNEN, DIE DAFÜR NICHT GEEIGNET SIND UND HIERDURCH SCHÄDEN AN DER PC-HARDWARE ENTSTEHEN KÖNNEN. BEACHTEN SIE BITTE EBENFALLS, DASS BEIM START DER S7-SOFTSPS DER HARDWAREPORTZUGRIFF BEIM BETRIEBSSYSTEM ANGEMELDET WIRD. DAHER MÜSSEN DIE PORTS ZWINGEND IN EINEM ZUSAMMENHÄNGENDEN, FREIEN BERECIH LIEGEN UND NICHT MIT EXISTIERENDER HARDWARE IN KONFLIKT STEHEN.


Beispiel

Um eine mögliche Konfiguration darzustellen, wird der Druckerport eines PC dem Prozessabbild der SPS zugeordnet. Der Ausgabeport A (0x378hex = 888dez) wird dem AB0 zugewiesen, der Eingabeport B (0x379hex = 889dez) dem EB0. Der Ausgabeport C (0x37Ahex = 890dez), von dem nur einige Bits auf die Schnittstelle geführt sind, wird den Peripherieeingängen PEB10 und den Peripherieausgängen PAB10 zugewiesen. Eine Initialisierung wird nicht vorgenommen.

[OEM]
dll0=ioport.dll
[ioportdll]
InitOutputs=0
SafeOutputs=0
BufferOutputs=0
MinByte=0
MaxByte=10
EB0=889
PEB10=890
AB0=888
InitAB0=0
SafeAB0=0
PAB10=890
InitPAB0=0
SafePAB0=0


Änderungen

Der Sourcecode dieses Treibers ist von unserem Support bei Bedarf erhältlich. Da neuere Baugruppen in aller Regel auf Basis des PCI-Busses aufgebaut sind, können diese Baugruppen nicht über diesen Treiber angesprochen werden. Üblicherweise liefern die Hersteller dieser Baugruppen jedoch Treiber und Zugriffs-DLLs mit. Hier kann der Sourcecode des vorliegenden Treibers als Gerüst dienen, um selbst eine Anpassung an solche speziellen Baugruppen vorzunehmen.