¿Puedo utilizar una computadora personal EXCEL para controlar un PLC?
Sí, utilice el script Excel + VBA para implementar la comunicación en serie y luego controlar el PLC.
Ejemplo de comunicación serial EXCEL-VBA
Software: EXCEL; Hardware: Emerson EC10 PLC Función: Controlar el relé de salida Y0 del PLC a través de los botones en EXCEL;
Interfaz: RUN (ejecutar comunicación), STOP (detener comunicación), Y0 (control de encendido/apagado Y0).
Programa principal:
Opción?Explícito
Público?Declarar?Sub?Sleep?Lib?"kernel32"?(ByVal?dwMillisegundos?As?Long)
¿Público?Declarar?Función?SetTimer?Lib?"Usuario32"?(ByVal?hwnd?As?Long,?ByVal?nIDEvent?As?Long,?ByVal?uElapse?As?Long,? ByVal ?lpTimerFunc?As?Long)?Función KillTimer Lib?"user32"?(ByVal?hwnd?As?Long,?ByVal?nIDEvent?As?Long)?As?Long
Público?com1? ?Nuevo?MSCommLib.
Público?y0_on?As?Booleano
Público?tmrFlag?As?Booleano
Público?tmr?As?Long p >
Sub?runn()
On?9600,e,8,1"
If?com1.PortOpen?=?False?Then
com1.PortOpen?=?True
¿Fin?If
tmr?=?SetTimer(0,?0,?500,?AddressOf? ontimer)
¿Salir?Sub
ed:
MsgBox?"¡Error al abrir el puerto serie! "
¿Fin?
Fin?Sub
Sub?stopp()
If?com1.PortOpen?=?True?Then
com1.PortOpen?=?False
KillTimer?0,?tmr
¿Fin?Si
Fin?Sub
¿Pública?Función?ontimer()
¿Atenuar?a(7)?¿As?Byte
Atenuar?añadir?As?Long
Activado ?Error?GoTo?ed
Si?=?False?Then
tmrFlag?=?True
If?y0_on?=?True?Then p> p>
y0_on?=?False
If?y0Stt?=?True?Then
a(0)?=?True?Then
a(0)?=?&H1?=?&H0?
a(6)?=?
a(7)? >
com1.Output?=?a
add?=?0
Do
DoEvents
Sleep?10 p>
¿añadir?=?añadir?+?1
Si?añadir?>=?100?Entonces
¿Salir?Hacer
¿Finalizar?
¿Bucle?Until?com1.InBufferCount?>=?8?
Else
a(0)? >
a(1)?=?&H5?
a(2)?
a(3)? p>
a(4)? =? &H0?
a(5)? =? &H0? 7)? =? &HCA?
com1.Output?=?a?
add?=?0
Do
DoEvents
¿Dormir?
¿añadir?=?añadir?+?1
Si?añadir?>=?100?Entonces
Salir ?Do
¿Fin?If
Bucle?Until?com1.InBufferCount?>=?8
¿Fin?If
¿Fin? Si
¿Fin? Si
¿Fin? Si
¿Fin? Si
tmrFlag?=?False
¿Salir?"Error de puerto serie!"
tmrFlag?=?False
Fin?Función
Programa de interfaz: Private?Sub?cmd1_Click()
p>y0_on?=?True
y0Stt?=?Not?y0Stt
Fin?Sub
Privado?sub
Privado?Sub?cmdRun_Click()
ejecutar
CheckBox1.Value?=?1
Fin?