Deve ser semelhante à comunicação com balança pelo com1: ou com2:
para balança, eu tenho uma rotina que lê a porta serial:
function pegapeso()
** LEITURA DA PORTA
NHANDLE:=Init_Port("COM1",9600,8,0,1,8000)
OutBufClr(NHANDLE) // Limpa o Buffer de Saida
OUTCHR(NHANDLE,CHR(5))
SYSWAIT(0.3)
Bytes := InbufSize(NHANDLE)
DADOS=SPACE(20)
Buffer := InChr( NHANDLE, Bytes, @DADOS)
UnInt_Port(nHandle)
dados=alltrim(dados)
** tratamento das informações lidas, na variável DADOS
Q=val(substr(dados,2,5))/1000
n1:=""
for i=1 to len(dados)
i0:=substr(dados,i,1)
if i0$"0987654321."
n1:=n1+i0
endif
next
q:=val(n1)
IF Q<=0
Q:=0
ENDIF
RETURN Q
Talvez sirva para você.