Pour le module CX-Server sous VB, il faut un fichier cdm pour la configuration des automates (il est à faire par CX-Server).
Dans VB, j'ai utiliser un Timer pour récupérer à intervalle voulue, le Composant CX Server pour la configuration des automates et son accès.
Le choix de l'automate se fait par VB avec le nom de l'automate données: AxComms1.SetDefaultPLC("Moyens") AxComms1.OpenPLC("Moyens")
Pour envoyer une commande sur la sortie TOR (Tout ou rien): AxComms1.set_CIO("110.00", 1)
Envoyer dans un DM If Val(fenmesures.TextBox1.Text) < 0 Then 'Température Négative fenmenu.AxComms1.set_D(9800, 1) fenmenu.AxComms1.set_D(9801, 0 - (Val(fenmesures.TextBox1.Text) * 10)) Else 'Température Positive fenmenu.AxComms1.set_D(9800, 0) fenmenu.AxComms1.set_D(9801, (Val(fenmesures.TextBox1.Text) * 10)) End If
Pour récupérer les DM: Zone en analogique (valeur de courant (par exemple de 4 à 20mA)/tension en fonction de la carte): récupéreer dans un tableau à par de 2001 jusquà 20058, voir la notice de fonctionnement (5 cartes à 8 entrées donc de 2001 à 2008 puis de 20011 à 2018, ..., 2051 à 2058) dmoyen = fenmenu.AxComms1.get_ReadArea("Moyens/CIO2001", 58, vbInteger, CXSERVERCOMMUNICATIONSCONTROLLib.WaitSetting.WaitUntilComplete)
On récuprère ensuite la valeur voulue (utilisation d'une méthode que j'ai créé pour transformer la valuer 4 - 20 mA en température (de -40°C à +100°C correspodant à la sonde de température). .ea211.Text = Format(sondept(dmoyen(0)), "0.0")
Zone de tout ou rien (0 ou 1) de 16 entrées tormoyens1 = fenmenu.AxComms1.get_ReadArea("Moyens/D4587", 16, vbInteger, CXSERVERCOMMUNICATIONSCONTROLLib.WaitSetting.WaitUntilComplete)
Voici une petite aide en espérant avoir été utile.
|