Accueil > > > DIALOGUER AVEC UN AUTOMATE SCHNEIDER À PARTIR D'UN SERVER OPC
DIALOGUER AVEC UN AUTOMATE SCHNEIDER À PARTIR D'UN SERVER OPC
Information sur la source
Description
Bonjour, Je veux essayer de dialoguer avec un automate Premium à partir de VB.net version 2003 par l'intermédiaire d'un server OPC. Voici le code que j'ai écrit :
Source
- Private WithEvents Server As Opc.Da.IServer = Nothing
- Private isSubscribe As Boolean = True
- Private WithEvents mySubscription As Opc.Da.ISubscription
- Private WithEvents ReadAsync As Opc.Da.ISubscription
- Private WithEvents WriteAsync As Opc.Da.ISubscription
- Dim WithEvents ComServer As Opc.Da.Server
- Dim m_handle As Integer
-
- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
- 'Déclaration
- Dim Status As Opc.Da.ServerStatus
- 'Dim ComServer As Opc.Da.Server
- Dim Url As Opc.URL = New Opc.URL("opcda://localhost/Schneider-Aut.OFS/{e7675090-9ff9-11d1-ac46-0060978add48}")
-
- 'Connexion sur le serveur de la liste deroulante DA20
-
- 'Dim Url As Opc.URL = New Opc.URL(cbxOPCSrvDA_20.SelectedItem.ToString)
- ComServer = New Opc.Da.Server(New OpcCom.Factory, Url)
- txtSrvStatus.Text = "essai"
-
- Try
- ComServer.Connect()
- Server = ComServer
- 'Recuperation du Status du serveur
- Status = Server.GetStatus
- txtSrvStatus.Clear()
- txtSrvStatus.Text = ("Info Vendeur :" & Status.VendorInfo & "Version Produit :" & Status.ProductVersion & "Etat du serveur :" & Status.ServerState.ToString & "Info Status :" & Status.StatusInfo & "Heure démarrage : " & "le " & Status.StartTime.ToLongDateString & " à " & Status.StartTime.ToLongTimeString & "Heure courante :" & Status.CurrentTime.ToLongTimeString & vbCrLf & "Dernier envoi :" & Status.LastUpdateTime.ToLongTimeString)
-
- Catch ex As Exception
- Throw (ex)
- End Try
- End Sub
-
- Private Sub btnRead_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRead.Click
- Dim item As Opc.Da.Item() = New Opc.Da.Item(0) {}
- item(0) = New Opc.Da.Item
- item(0).ItemPath = ""
- item(0).ItemName = txtItem.Text
-
- Dim result As Opc.Da.ItemValueResult()
- Try
- result = Server.Read(item)
- If result Is Nothing Then
- txtValue.Text = "Erreur de Lecture"
- TxtQuality.Text = "Erreur de Lecture"
- Else
- 'If result(0).ResultID = Opc.ResultID.S_OK Then
- txtValue.Text = CType(result(0).Value, String)
- ' TxtQuality.Text = result(0).Quality.ToString
- ' Else
- ' txtValue.Text = "Erreur de Lecture"
- ' TxtQuality.Text = "Erreur de Lecture"
- 'End If
- End If
-
- Catch ex As Exception
- MsgBox("" & ex.Message)
- End Try
- End Sub
-
-
- Private Sub btnWrite_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnWrite.Click
- 'Déclaration des variables
- Dim item As Opc.Da.ItemValue() = New Opc.Da.ItemValue(0) {}
- item(0) = New Opc.Da.ItemValue
- item(0).ItemPath = ""
- item(0).ItemName = txtItem.Text
- item(0).Value = System.Convert.ChangeType(Me.txtValue.Text, GetType(Object))
-
- Dim result As Opc.IdentifiedResult()
- Try
- result = Server.Write(item)
- 'If result Is Nothing Then
- txtValue.Text = "Erreur d'écriture"
- TxtQuality.Text = "Erreur d'écriture"
- 'Else
- ' If Not (result(0).ResultID = Opc.ResultID.S_OK) Then
- ' txtValue.Text = "Erreur d'écriture"
- ' TxtQuality.Text = "Erreur d'écriture"
- ' End If
- 'End If
- Catch ex As Exception
- MsgBox("" & ex.Message)
- End Try
- End Sub
Private WithEvents Server As Opc.Da.IServer = Nothing
Private isSubscribe As Boolean = True
Private WithEvents mySubscription As Opc.Da.ISubscription
Private WithEvents ReadAsync As Opc.Da.ISubscription
Private WithEvents WriteAsync As Opc.Da.ISubscription
Dim WithEvents ComServer As Opc.Da.Server
Dim m_handle As Integer
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'Déclaration
Dim Status As Opc.Da.ServerStatus
'Dim ComServer As Opc.Da.Server
Dim Url As Opc.URL = New Opc.URL("opcda://localhost/Schneider-Aut.OFS/{e7675090-9ff9-11d1-ac46-0060978add48}")
'Connexion sur le serveur de la liste deroulante DA20
'Dim Url As Opc.URL = New Opc.URL(cbxOPCSrvDA_20.SelectedItem.ToString)
ComServer = New Opc.Da.Server(New OpcCom.Factory, Url)
txtSrvStatus.Text = "essai"
Try
ComServer.Connect()
Server = ComServer
'Recuperation du Status du serveur
Status = Server.GetStatus
txtSrvStatus.Clear()
txtSrvStatus.Text = ("Info Vendeur :" & Status.VendorInfo & "Version Produit :" & Status.ProductVersion & "Etat du serveur :" & Status.ServerState.ToString & "Info Status :" & Status.StatusInfo & "Heure démarrage : " & "le " & Status.StartTime.ToLongDateString & " à " & Status.StartTime.ToLongTimeString & "Heure courante :" & Status.CurrentTime.ToLongTimeString & vbCrLf & "Dernier envoi :" & Status.LastUpdateTime.ToLongTimeString)
Catch ex As Exception
Throw (ex)
End Try
End Sub
Private Sub btnRead_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRead.Click
Dim item As Opc.Da.Item() = New Opc.Da.Item(0) {}
item(0) = New Opc.Da.Item
item(0).ItemPath = ""
item(0).ItemName = txtItem.Text
Dim result As Opc.Da.ItemValueResult()
Try
result = Server.Read(item)
If result Is Nothing Then
txtValue.Text = "Erreur de Lecture"
TxtQuality.Text = "Erreur de Lecture"
Else
'If result(0).ResultID = Opc.ResultID.S_OK Then
txtValue.Text = CType(result(0).Value, String)
' TxtQuality.Text = result(0).Quality.ToString
' Else
' txtValue.Text = "Erreur de Lecture"
' TxtQuality.Text = "Erreur de Lecture"
'End If
End If
Catch ex As Exception
MsgBox("" & ex.Message)
End Try
End Sub
Private Sub btnWrite_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnWrite.Click
'Déclaration des variables
Dim item As Opc.Da.ItemValue() = New Opc.Da.ItemValue(0) {}
item(0) = New Opc.Da.ItemValue
item(0).ItemPath = ""
item(0).ItemName = txtItem.Text
item(0).Value = System.Convert.ChangeType(Me.txtValue.Text, GetType(Object))
Dim result As Opc.IdentifiedResult()
Try
result = Server.Write(item)
'If result Is Nothing Then
txtValue.Text = "Erreur d'écriture"
TxtQuality.Text = "Erreur d'écriture"
'Else
' If Not (result(0).ResultID = Opc.ResultID.S_OK) Then
' txtValue.Text = "Erreur d'écriture"
' TxtQuality.Text = "Erreur d'écriture"
' End If
'End If
Catch ex As Exception
MsgBox("" & ex.Message)
End Try
End Sub
Conclusion
J'arrive à lire la valeur d'un mot dans l'automate par contre quand j'essai de modifier la valeur du mot l'erreur E-Fail IOPCSyncIO.Write s'affiche. Merci pour votre aide
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
dialogue OPC Automate [ par renato56 ]
bonjourJe travaille en ce moment sur un dialogue OPC automate dont voici la configuration : PC -->TSXCT
serveur OPC distant [ par je2fb ]
bonjour,Je developpe actuellement une application Vb.Net qui doit se connecter a un serveur OPC qui est sur une autre machine. Mon serveur est celui d
acces données automate twido [ par wasso3 ]
Bonjour, Je stock des valeurs dans des mots de mon automate twido.J'aimerai pouvoir lire ces mots et les stocker dans un fichier.Comment faire?
OPC [ par mbkmavie ]
salut..- je suis a la recherche de la doc en francais sur le systeme OPC- est ce que il n ya pas un logiciel de simulation pour l'OPCMerci
serveur OPC [ par mbkmavie ]
salut..- comment faire pour lire une base de donnée access (mdb) sur un serveur OPC (matrikon simulateur)- Programmer en vb6 cette base de donnéeMerci
Appel de fonction unique? [ par adirand ]
Bonjour à tous,Je suis en train de developper une application VB6 communiquant avec un automate en protocol TCP (utilisation de Winsock)Une fois la co
mise en place d'une interface opc eg. carte Applicom PCU2000ETH [ par absao ]
SOS Dans le cadre de mon stage, je dois dévéloper une apllication qui permet la supervision de matériel de terrain industriel. j'ai réseau industriel
additem pour un vlient OPC en vb.net [ par lallia ]
Bonjour,je désire utiliser le additems pour ajouter un tableau d'items en VB.net ,mais il me donne une erreur de cast ,je ne sais pas tres bien ce q
connexion entre des PLC et un opc server [ par ISIcien ]
je dispose de trois PLC dont chacun est connecté à un modem. A travers une ligne téléphonique on se connecte à un OPC server (SNPX) qui a pour role de
automate omron [ par odinduvaldecie ]
j ai besoin d aide pour la programmation et le cablage de cette automate, je sais pas comment faire.merci si vous pouvez m aider je vous donne mon m
|
Derniers Blogs
TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 !TECHDAYS PARIS 2012 : WINDOWS SERVER "8" QUOI DE 9 ! par ROMELARD Fabrice
Speakers: Fabrice Meillon et Stanislas Quastana Cette session est basée entièrement sur celle donnée lors de la BUILD cet hiver. Il n'y a pas d'ajout d'information en rapport avec cet évènement passé. Windows 8 Server sera intégralem...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice [HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE)[HTML5] AUTOUR DU W3C : NOUVEAUX STANDARDS ET WEB MOBILE (LILLE) par Gio
Je m'y prends un peu tard je sais, mais bon je suis développeur web et donc hyper fainéant ! Toujours dans le cadre des technologies émergentes, ici HTML5, parce qu'on aime HTML5 chez Wyg , nous seront présent, le vieux ( Aurélien V.) et moi, pour pr...
Cliquez pour lire la suite de l'article par Gio [WP7] DYNAMICALLY CHANGE STARTUP PAGE[WP7] DYNAMICALLY CHANGE STARTUP PAGE par KooKiz
Let's say that you want to allow the user to customize the startup page of your application. You can easily change the startup page by editing the 'NavigationPage' attribute in the manifest file. But the manifest cannot be modified once the applicatio...
Cliquez pour lire la suite de l'article par KooKiz SESSION SILVERLIGHT 5 3D : SLIDES ET DEMOSSESSION SILVERLIGHT 5 3D : SLIDES ET DEMOS par Groc
Durant les techdays, j'ai eu le plaisir d'animer une session sur Silverlight 5 et la 3D avec Simon Ferquel. Comme promis, voici nos slides et mes démos (celles avec le viper BSG) ici et là. Pour mémoire, les démos utilisent toutes le viper BSG...
Cliquez pour lire la suite de l'article par Groc
Logiciels
DocTranslate (V3.1.0.0)DOCTRANSLATE (V3.1.0.0)DocTranslate est un traducteur de document Microsoft Word, PowerPoint et Excel. Il permet d'autom... Cliquez pour télécharger DocTranslate Tribler (2012)TRIBLER (2012)Tribler est un client pair à pair (P2P/Peer-to-Peer) open source avec la capacité de regarder des... Cliquez pour télécharger Tribler OneSwarm (2012)ONESWARM (2012)Le peer-to-peer qui protège votre vie privée, c'est OneSwarm.
Ce logiciel de peer-to-peer crypté... Cliquez pour télécharger OneSwarm PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V8.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System
|