Red de conocimientos turísticos - Conocimientos sobre calendario chino - ¿Puedo utilizar una computadora personal EXCEL para controlar un PLC?

¿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

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>

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

¿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?