我正在尝试向世界打招呼,与连接到VAISALA PTB330压力传感器的CR6 Wifi连接。我试图遵循Datalogger的串行通信白皮书,并收到“ NAN”响应。这是我第一次使用Crbasic,来自Arduino,所以我可能会缺少明显的东西。这是我的代码:
'CR6系列
'声明变量和单位
公共battv
公共PTEMP_C
公共temp_c
公共PBT330_TQFE作为字符串 * 50
单位battv =伏特
单位ptemp_c = deg c
单位temp_c = deg c
'定义数据表
DataTable(testasdf,true,-1)
Datainterval(0,2,SEC,10)
平均(1,temp_c,fp2,false)
样本(1,PBT330_TQFE,字符串)
茶几
DataTable(Table2,True,-1)
datainterval(0,1440,最小,10)
最低(1,Battv,FP2,False,False)
茶几
'主要程序
Beginprog
'开放串行端口
Serialopen(COMU3,4800,26,0,25)
'主要扫描
扫描(500,MSEC,4,0)
“默认CR6 Datalogger电池电压测量” battv'
电池(BATTV)
“默认CR6 Datalogger接线面板温度测量'PTEMP_C'
PANELTEMP(PTEMP_C,60)
“ T型热电偶测量” temp_c'
tcdiff(temp_c,1,mv200c,u1,typet,ptemp_c,true,0,60,1,0)
SerialOutBlock(COMU3,“ TQFE?”,6)
延迟(0,5000,MSEC)
SerialInRecord(COMU3,PBT330_TQFE,&H02,0,&H0D,PBT330_TQFE,01)
'调用数据表和存储数据
可呼叫testasdf
calltable table2
NextScan
末端
接线是使用PTB330上的RX/TX/GND端子的3线RS-232类型连接。
操作的简单描述
在代码中,我尝试通过序列号发送``tqfe?'',Vaisala要求哪个命令读取温度值(任意选择为我的Hello World变量)。我延迟了片刻,然后请求字节存储在该长度的PBT330_TQFE中。
结果
预期的结果是一个看起来像:“ T 123.45 C”的字符串。观察到的结果是“ NAN”。
我尝试了什么
我在此处使用了代码的一部分,这无济于事,其中包括:更改延迟长度,线开始char和线终止字符。我特别怀疑该线路结束字符,因为PTB330的协议指南对该主题必须含糊不清。我通常会假设一个EOL或无效终止,但是该指南仅隐约暗示LF和CR符号。
我试图使用终端模拟器分析通信。当我这样做时,我只会看到输出消息:
“ 12.34.56.000 t tqfe?”
没有任何内容。我不能不拔出示波器就无法分辨出发送的消息是否正在发送响应。我在数据查看器中看到的“ NAN”可能是一个空字符串。
我的问题
为什么我不收到传感器的响应?我很明显吗?有人对此乐器有任何经验吗?
你好
您的句子:
“我试图使用终端模拟器分析通信。”
您是指哪个终端?那个记录仪?还是通过PC通过RS232?
如果您使用logge,请通过串行谈话和/或通讯手表函数?
微笑
微笑,我能够付出更多的努力来解决问题。事实证明,这是一个布线问题。
我的意思是通过Loggernet Connect软件进行调试“终端模拟器”。
另外,对于双重主题,我深表歉意。如果mod可以合并并关闭线程,请这样做。我将在另一个线程中更详细地回复://m.ocbeachreo.com/forum=1&l=thread&tid=16747。
这个主题是关闭的。