你好
数据表(Station_1A_Meas,True,-1)
示例(1,WindSpeed,IEEE4)
示例(1,WindDirection,IEEE4)
样品(1,空气温度,IEEE4)
样品(1,RH,IEEE4)
床头柜
开始进度
扫描(500毫秒,1.0)
接受数据记录(532769,Station_1A_Meas)
数据输出=Station_1A_测量输出(1,1)
如果数据输出,则
获取记录(RecordTable,Station_1A_Meas,1)
串行输出(ComRS232,String_1A_Meas,“”,1,0)
结束如果
下一次扫描
结束程序
如果以这种速度很难看到,请尝试每分钟接收一次远程记录,并将扫描速度设置为1秒。
谢谢
我看了一下,似乎一旦一条记录被接收到表中,Output标志就会变为true,但永远不会重置——我怀疑这是因为它通常在下一次调用表时重置。
下面显示了对此的解决方法,您可以跟踪表中最后一条记录的记录编号,而不是输出标志。
请注意,在我的测试中,我更改了串行端口,还以缓慢的顺序添加了一些您不需要的测试代码。我还在SerialOut命令中更正了程序中的一个错误,在该命令中,您输出的是表名,而不是预期的字符串。
---------
公共风速,风向,气温,相对湿度,数据输出为布尔值,记录表为字符串*1000,记录号,最后记录号,go为布尔值
数据表(Station_1A_Meas,True,-1)
样本(1,风向,IEEE4)
样品(1,空气温度,IEEE4)
样品(1,rh,IEEE4)
床头柜
开始进度
串行打开(ComME,-96003,01000)
最后记录号=0
扫描(500毫秒,1.0)
接受数据记录(532769,Station_1A_Meas)
recordno=站点_1A_测量记录(1,1)
dataout=记录号>;最后记录编号
如果数据输出,那么
获取记录(记录表,Station_1A_Meas,1)
串行输出(ComME,可记录,“”,1,0)
lastrecordno=记录号
结束如果
下一次扫描
“这只是模拟从远程记录器接收数据的测试代码
'go boolena是手动设置的
慢速序列
扫描(10,秒,3.0)
如果进行,则调用表站_1a_mes
下一次扫描
结束程序