Disclaimer, mijn kennis ligt bij PLC en SCADA systemen en niet echt bij VB of C# - voor een hobby projectje waar ik potentieel vele uren werk kan besparen heb ik toch de stoute schoenen aan getrokken en visual studio geinstalleerd, ik hoop dat mijn vraag dus eenvoudig is...
Ik gebruik tweetal Siemens DLL's om de Siemens TIA Portal programmeer omgeving te benaderen (Siemens PLC projecten geautomatiseerd openen en bewerken). Om een project te openen moet ik beveiligings credentails meegeven, hiervoor gebruik ik de volgende aanroep (gekopieerd uit de handleiding van Siemens):
Het probleem dat ik heb heeft temaken met de MyUmacDelegate aanroep, deze verwijst naar de volgende sub:
Bovenstaande code snippet heb ik uit een handleiding gepakt maar daar stond niet de volledige functie. Ik begrijp wat er moet gebeuren, voor het openen van een project moet ik een soort container meegeven waarin de username en password staan, deze container wordt in een aparte sub gevuld (later is de bedoeling dat dit een user interface wordt, voor nu wil ik gewoon testen of ik een beveiligd project kan openen)
Nu zie ik dat bij de aanroep (eeste code blokje) de tekst MyUmacDelegate rood is onderlijnd en de volgende foutmelding geeft: Argument not specified for parameter '<parametername>' of '<methodname>'
En ik weet niet zo goed hoe ik dit oplos; ik raak vooral in de war door de voorgeleverde Class en Delegate van de Siemens library. Als het nu een simpele string was die naar een sub werd gegooid dan zou het al een stuk makkelijker zijn om te volgen...
Kan iemand mij een duwtje in de goede richting geven over wat ik mis / waar ik moet zoeken naar het probleem, moeet ik een argument meegeven met de MyUmacDelegate aanroep ofzo?
Ik heb zelf al de code uit de SUB gehaald en bij de aanroepende functie gezet om te zien of ik wat duidelijkere foutmeldingen kreeg maar zonder resultaat.
Ik gebruik tweetal Siemens DLL's om de Siemens TIA Portal programmeer omgeving te benaderen (Siemens PLC projecten geautomatiseerd openen en bewerken). Om een project te openen moet ik beveiligings credentails meegeven, hiervoor gebruik ik de volgende aanroep (gekopieerd uit de handleiding van Siemens):
code:
1
| MyProject = MyTiaPortal.Projects.Open(New FileInfo(ProjectPath), MyUmacDelegate) |
Het probleem dat ik heb heeft temaken met de MyUmacDelegate aanroep, deze verwijst naar de volgende sub:
code:
1
2
3
4
5
6
7
| Private Sub MyUmacDelegate(UmacCredentials As UmacCredentials) Dim pass As New System.Security.SecureString() pass.AppendChar("x") 'dummy password x for testing UmacCredentials.Type = UmacUserType.Project // has value of 0, this is a normal user UmacCredentials.Name = "DummyUser1" 'dummy user account created for testing UmacCredentials.SetPassword(pass) End Sub |
Bovenstaande code snippet heb ik uit een handleiding gepakt maar daar stond niet de volledige functie. Ik begrijp wat er moet gebeuren, voor het openen van een project moet ik een soort container meegeven waarin de username en password staan, deze container wordt in een aparte sub gevuld (later is de bedoeling dat dit een user interface wordt, voor nu wil ik gewoon testen of ik een beveiligd project kan openen)
Nu zie ik dat bij de aanroep (eeste code blokje) de tekst MyUmacDelegate rood is onderlijnd en de volgende foutmelding geeft: Argument not specified for parameter '<parametername>' of '<methodname>'
En ik weet niet zo goed hoe ik dit oplos; ik raak vooral in de war door de voorgeleverde Class en Delegate van de Siemens library. Als het nu een simpele string was die naar een sub werd gegooid dan zou het al een stuk makkelijker zijn om te volgen...
Kan iemand mij een duwtje in de goede richting geven over wat ik mis / waar ik moet zoeken naar het probleem, moeet ik een argument meegeven met de MyUmacDelegate aanroep ofzo?
Ik heb zelf al de code uit de SUB gehaald en bij de aanroepende functie gezet om te zien of ik wat duidelijkere foutmeldingen kreeg maar zonder resultaat.
at your service