Buenas tardes,
Fijate en el ejemplo que adjunto
SerialPort.zip y lee el archivo info.txt del proyecto que explica como probarlo.
El ejemplo utiliza eventos para recibir datos y envia tambien bytes por el puerto cuando DIN1 se activa.
Abri el ejemplo y la parte que te interesa para transmitir es:
En diagrama
Inicio.sld, componente
SERIAL INIT para configurar el puerto, en
network N001.
En diagrama
Principal.sld, componentes "
SERIAL SEND BYTE", los mismos envian un
BYTE cuando son llamados.
Para tu caso, podes crear dos variables tipo
Int32 llamada
TxDin y otra
TxDout. En cada variable, solo usas 8 bits (un byte), y en cada bit pones el estado de las entradas o salidas. Luego transmitís esos dos bytes al PIC y los decodificas. Deberias usar dos bytes extras con un valor fijo (ej: 55 y 99), para identificar el inicio de transmisión desde el PIC, así sincronizas.
Para alterar el bit de una variable
Int32, te aconsejo usar el componente "
BIT", ubicado en
"Operaciones Logicas > Bits Int32". Usas las operaciones CLR y SET.
Si queres tambien podes ver los datos transmitidos en la PC:Con el ejemplo adjunto, podes porbar el puerto serie enviando datos a la PC.
Podes usar el software Putty (
http://www.putty.org) en Windows para ver los caracteres transmitidos.
Los parámetros a utilizar en la conexion es: Velocidad 9600 bps y formato de frame 8N1 (8bit datos, sin paridad, 1 bit de stop).
Debes usar un cable cruzado para conectarlo a la PC.
Cualquier duda, avísanos.