
📌 De un vistazo: comunicación de hardware de Visual Basic 6.0
| Entorno de desarrollo | MicrosoftVisual Basic 6.0 (SP6) |
|---|---|
| Control de puerto serie | Componente MSComm32.ocx o API COM de Win32 |
| Control de puerto paralelo | InpOut32.dll / Direccionamiento directo de puerto (0x378) |
| Área de uso | Automatización Industrial, Comunicación con Microcontroladores (PIC, AVR), Tarjetas de Relé |
| Ventaja | Desarrollo rápido de interfaz gráfica, lectura de datos basada en eventos |
| Sistema operativo | Modos de compatibilidad con Windows 98, XP, 7 y 32 bits |
Aunque Visual Basic 6.0 es una tecnología antigua, sigue siendo una de las plataformas más comprensibles para aprender a controlar el hardware a través del puerto serie (COM) y el puerto paralelo (LPT) en laboratorios de electrónica industrial y proyectos de hobby.
Introducción: la puerta de entrada al mundo enterrado
Aunque el acceso directo a los puertos de hardware está restringido por razones de seguridad en los sistemas operativos modernos, en el período de Visual Basic 6.0, las líneas serie RS-232 y los puertos de impresora paralelos de 25 pines eran la principal arteria de comunicación con microcontroladores y tarjetas de relé [1].
1. Comunicación del puerto serie con el componente MSComm
El objeto MSComm integrado de Microsoft se utiliza para el control del puerto serie en el entorno VB6:
Private Sub Form_Load()
MSComm1.CommPort = 1 ' COM1 Portu
MSComm1.Settings = "9600,N,8,1" ' 9600 Baud, Parity Yok, 8 Data Biti, 1 Stop Biti
MSComm1.InputLen = 0 ' Tüm tamponu oku
MSComm1.PortOpen = True ' Portu aç
End Sub
Private Sub MSComm1_OnComm()
If MSComm1.CommEvent = comEvReceive Then
txtGelenVeri.Text = txtGelenVeri.Text & MSComm1.Input
End If
End Sub
2. Activación de LED y relé a través del puerto paralelo (LPT1)
Dado que la lectura/escritura directa del puerto (comandos IN / OUT) está bloqueada en los sistemas basados en Windows NT (XP y posteriores), se utiliza InpOut32.dll, que proporciona un controlador a nivel de kernel [2]:
Private Declare Function Inp Lib "inpout32.dll" Alias "Inp32" (ByVal PortAddress As Integer) As Integer
Private Declare Sub Out Lib "inpout32.dll" Alias "Out32" (ByVal PortAddress As Integer, ByVal Value As Integer)
' LPT1 Data Port Adresi: &H378 (Hex)
Private Sub btnLediYak_Click()
Out &H378, 255 ' Tüm pinleri (D0-D7) 5V Yüksek (HIGH) seviyeye çek
End Sub
Fuentes y referencias independientes
[1] Jan Axelson: Puerto serie completo: puertos COM y puertos COM virtuales USB
[2] Interfaz de puerto paralelo de alto rendimiento: Referencia de arquitectura InpOut32 y puerto paralelo completo