IES Palau Ausit    RIPOLLET (Vallés Occidental)

 
Cicle Formatiu de Grau Superior
SISTEMES DE REGULACIÓ I CONTROL AUTOMÀTICS
 
 

      "Forçar un canal d'un PLC OMRON sèrie C mitjançant Visual Basic"









Vicente Guerrero

 

        Forçar un canal d'un PLC OMRON Sèrie C mitjançant Visual Basic

                                            Aquest exercici és un programa fet amb Visual Basic que fa la conversió d'un valor en binari a format
                                        decimal i hexadecimal i a més forma la trama que s´ha d'enviar al PLC, després que l'usuari assenyali
                                        en la paraula del canal IR triat prèviament els bits que vol forçar a "1" i a "0".

                                            En la figura següent es representa la pantalla que surt en executar el programa, a on apareix
                                        diferents finestres i botons amb les següents funcions:
 
  

FINESTRA O BOTÓ
FUNCIÓ
Canal CH
És per indicar el número del canal que es vol forçar.
0, 1, 2 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14 i 15
Els diferents bytes a forçar
Decimal
Sortirà el valor en decimal del binari introduït, després de pitjar el botó "Convertir"
Hexadecimal
Sortirà el valor en hexadecimal del binari introduït, després de pitjar el botó  "Convertir".
Trama
Sortirà la trama que s'ha d'enviar al PLC, després de pitjar el botó "Convertir".
Tornar
Al pitjar aquest botó el programa finalitza i es tanca.

 

                                            A continuació es mostra el codi font del programa:
  

Dim Deci(16) As Integer                                                                        ' Declaració de variables
Dim I, n, X, H, L As Integer
Dim Valor_Dec As Double
Dim Valor_Hex(4) As String
Dim Dato_Hexa As String
Dim NoCH As String
Dim trama As String

__________________________________________________________________________
Private Sub Command1_Click()                                              'Passar d'un valor Binari a Decimal
I = 0
n = 0
H = 0
X = 0
L = 0
Valor_Dec = 0
    For X = 0 To 15
        If Check1(X).Value = 1 Then
            Deci(X) = 1
            Else: Deci(X) = 0
        End If
        Valor_Dec = Valor_Dec + (Deci(X) * 2 ^ X)
    Next X
    Text2.Text = Valor_Dec
DecHex
formar_trama
End Sub

__________________________________________________________________________
Private Sub Tornar_Click()                                                                           'Tancar el programa
Exit
End Sub

__________________________________________________________________________
Private Sub DecHex()                                             'Passar de un valor Decimal a Hexadecimal
Dato_Hexa = Hex(Valor_Dec)
If Len(Dato_Hexa) = 0 Then Dato_Hexa = "0000" + Dato_Hexa
If Len(Dato_Hexa) = 1 Then Dato_Hexa = "000" + Dato_Hexa
If Len(Dato_Hexa) = 2 Then Dato_Hexa = "00" + Dato_Hexa
If Len(Dato_Hexa) = 3 Then Dato_Hexa = "0" + Dato_Hexa
Text3.Text = Dato_Hexa
End Sub

__________________________________________________________________________
Private Sub formar_trama()                                                       'Formar trama per enviar al PLC
NoCH = Text1.Text
If Len(NoCH) = 1 Then NoCH = "000" + NoCH
If Len(NoCH) = 2 Then NoCH = "00" + NoCH
trama = "@00WR" + NoCH + Dato_Hexa
FCS
Text4.Text = trama
End Sub
 

__________________________________________________________________________
Private Sub FCS()                                                                                              'Càlcul del FCS
Q = 0
For I = 1 To Len(trama) 
Q = Q Xor Asc(Mid$(trama, I, 1))
Next I
FCS = "0" + Hex$(Q): FCS = Right$(FCS, 2)
trama = trama + FCS + "*" + Chr$(13) 
End Sub