libnodave und S7Online nur mit MPI&Profibus oder auch per TCP/IP?

bool

Level-1
Beiträge
94
Reaktionspunkte
0
Zuviel Werbung?
-> Hier kostenlos registrieren
Hallo zusammen,

ich wollte mal fragen wie es aussieht wenn ich mich auf den S7ONLINE Accesspoint vom SIMATIC aufsattle und dort aktuell kein MPI Device aktiviert ist sondern TCP/IP über eine Netzwerkkarte ausgewählt ist.

Bei mir funktioniert dann seltsamerweise der Verbindungsaufbau an sich, da ich ja aber über S7Online keine IP Adresse adressiere, gibt es ja auch keinen definierten Zielpunkt und meine Leseversuche via dc.execReadRequests erhalten nur die -128 als Dankeschön.

Das bedeutet dann wohl, dass TCP/IP über S7ONLINE nicht funktionert.
Wie kann ich dann aber eine solche Fehlkonfiguration frühzeitig erkennen und den Benutzer darauf hinweisen bevor dieser sinnlose Leseversuche startet?

Welche Kommunikationsarten über welche Interfaces funktionieren mit S7Online und welche nicht? Wie detektiere ich welche grade ausgewählt ist? Über die Registry? Wenn ja wie und wo?

Danke bereits im voraus für jede Info.

Gruss,

bool
 
Nein...

Soweit Ich weiss wird nur MPI und Profibus Kommunikation über S7Online unterstützt!

Kannst ja mal auch meine LibNoDaveConnectionLibrary anschauen, bin gerade dran ein Teil der LibNoDave Funktionalität zu Kappseln!
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Soweit Ich weiss wird nur MPI und Profibus Kommunikation über S7Online unterstützt!

Hallo Jochen, Danke für die Bestätigung meiner Annahme betreffs TCP over S7Online.
Ich habe mir inzwischen auch schon eine Möglichkeit gebastelt welche es mir erlaubt den ausgewählten Device der SIMATIC PG/PC-schnittstellenkonfiguration aus der registry auszulesen und den Anwender rechtzeitig darauf hinzuweisen und den Verbindungsversuch abzubrechen.

Hier ein Auszug aus dem VB 2008 Express Programmcode:
(Ob der Registrykey allgemein gültig ist kann ich nicht sagen, bei mir jedoch funktioniert es ganz gut. Über Feedback ob dieser Key prinzipiell so verwendet werden kann, wäre ich aucf jeden Fall dankbar.)

Imports Microsoft.Win32 ' for registry access
...
DimS7Online_accesspoint AsString 'wird über eine Textbox bedient, jedoch eigentlich immer "S7ONLINE"
...
Dim MyKey As RegistryKey
Dim act_S7Online_adapter AsString
MyKey = Registry.LocalMachine.OpenSubKey("SOFTWARE\Siemens\SINEC\LogNames\" & S7Online_accesspoint)
If MyKey IsNothingThen
Me.Statusleiste.Text = "Open S7Online Connection canceled because SIMATIC PG/PC Interface is not installed!"
WriteDebugInfo("Open S7Online Connection canceled because SIMATIC PG/PC Interface is not installed!")
ReturnFalse
ExitFunction
EndIf
act_S7Online_adapter = CStr(MyKey.GetValue("LogDevice", "NA"))
MyKey.Close()
If act_S7Online_adapter = "NA"Then
Me.Statusleiste.Text = "Open S7Online Connection canceled because SIMATIC PG/PC Interface registry value LogDevice is not installed!"
WriteDebugInfo("Open S7Online Connection canceled because SIMATIC PG/PC Interface registry value LogDevice is not installed!")
ReturnFalse
ExitFunction
EndIf
If InStr(act_S7Online_adapter, "TCP") > 0 Or InStr(act_S7Online_adapter, "ISO") > 0 Then
Me.Statusleiste.Text = "S7Online is not working with ISO or TCP protocoll! Please select a MPI/Profibus adapter before trying again!"
WriteDebugInfo("S7Online is not working with ISO or TCP protocoll! Please select a MPI/Profibus adapter before trying again!")
ReturnFalse
ExitFunction
EndIf
...

Kannst ja mal auch meine LibNoDaveConnectionLibrary anschauen, bin gerade dran ein Teil der LibNoDave Funktionalität zu Kappseln!
Danke, werde ich mir gerne anschauen. Wo kann ich diese finden?

Gruss,

bool
 
Zuviel Werbung?
-> Hier kostenlos registrieren
LibNoDaveConnectionLibrary

Hallo Jochen

Ich verwende LibNoDaveConnectionLibrary zur Visulaisierung einer Simatic S7 Anpage. In der Version, welche auf deinem Blog heruntergeladen werden kann, wird nun ständig versucht, ein Wert aus der Registry zu laden unter dem Schlüssen: SOFTWARE\\Siemens\\SINEC. Das führt bei mir zu einem Fehler. Muss hier irgendwelche Siemens Software vorinstalliert sein, damit die Library verwendet werden kann. Oder kann ich die betreffenden Teile "EntryPoint" einfach auskommentieren?

Gruss Thomas
 
Hmmm...

Also Ich würde lieber das Problem beheben... Meine Connection Lib sollte auch gehen wenn es nicht installiert ist.

Ich hatte noch ein Fehler:

In der ConnectionEditor.cs in der SaveSettings muss
myconfig.EntryPoint = lstListEntryPoints.SelectedItem.ToString();
durch
if (lstListEntryPoints.SelectedItem != null)
myConfig.EntryPoint = lstListEntryPoints.SelectedItem.ToString();
ersetzt werden.

Dann läufts bei mir auch wenn Ich die Siemens Registry Schlüssel lösche...

Probiers mal... Oder sag mir wo es noch eine Exception gibt!
 
Danke für die schnelle Antwort. So funktionierts auch ohne die Software. Nun gibts noch ein paar Probleme, so dass der ausgewählte ComPort nicht gespeichert wird. Wenn man in der Methode SaveSettings() die Zeile
myConfig.ComPort = lstLIBNODAVELokalCOMPort.SelectedText;
durch
myConfig.ComPort = lstLIBNODAVELokalCOMPort.SelectedItem.ToString();
ersetzt und in der Methode LoadSettings() die Zeile
lstLIBNODAVELokalCOMPort.SelectedText = myConfig.ComPort;
durch
lstLIBNODAVELokalCOMPort.SelectedItem = myConfig.ComPort;
dann geht das mit dem ComPort auch.

Selbes Problem auch bei ComParity und bei ComSpeed, hab ich aber nicht angebpasst, da ich das nicht brauche.

Hast hier eine fantastische Arbeit gemacht mit der Library! Kompliment!

Gruss Thomas
 
Zuviel Werbung?
-> Hier kostenlos registrieren
Danke für die schnelle Antwort. So funktionierts auch ohne die Software. Nun gibts noch ein paar Probleme, so dass der ausgewählte ComPort nicht gespeichert wird. Wenn man in der Methode SaveSettings() die Zeile
myConfig.ComPort = lstLIBNODAVELokalCOMPort.SelectedText;
durch
myConfig.ComPort = lstLIBNODAVELokalCOMPort.SelectedItem.ToString();
ersetzt und in der Methode LoadSettings() die Zeile
lstLIBNODAVELokalCOMPort.SelectedText = myConfig.ComPort;
durch
lstLIBNODAVELokalCOMPort.SelectedItem = myConfig.ComPort;
dann geht das mit dem ComPort auch.

Selbes Problem auch bei ComParity und bei ComSpeed, hab ich aber nicht angebpasst, da ich das nicht brauche.

Hast hier eine fantastische Arbeit gemacht mit der Library! Kompliment!

Gruss Thomas

Ja, das hab ich ganz vergessen da ich das nie benutze! Werd es aber heute noch einbauen...

Wenn du sonst noch Fehler merkst, lass es mich wissen. Nur zu Info: Vor allem der multipleWriteRequest mit mehreren Variablen ist noch nicht ausgiebig getestet!

Aber Ich arbeite an allen Ecken und Enden!
 
Gibt es einen Ort, wo man jeweils Deine aktuellen versionen herunterladen kann? Sourceforge oder codeplex? Würde deine Änderungen jeweils gerne übernehmen.
Werde in den nächsten Tagen vielleich ab und zu noch einige Fragen zur Library haben, da ich die gern standardmässig in einigen Kundenprojekten einsetzen würde.
Wenn Du möchtest, kann ich Dir gefundenen Fehler auch direkt mailen, meine Adresse ist tflueckiger ät f-in.ch.

Danke und Gruss
Thomas
 
Zurück
Oben