你好
我有一个LinkQuest FlowScout传感器。
串行通信是ASCII RS232,我需要获取字符串,但数据记录器CR800没有显示完整的字符串。
我使用com1,9600,8 N,1
序列输入记录
超级终端显示字符串:
#&!LQFM.COMD2525 FM_启动
$#FM.ENSÉ2ï$*0xÜe宋体þ)E0宋体f V E1 2 E2 FS2M.2.0.03 FS STK011
一个
有人知道吗?
因为在E0和E1之间我们找到了实际值。
非常感谢你。。。。。
新对话如下:
你好,鲁本,
您的SerialInRecord指令有一个目标变量,您可以在程序的前面声明它。这将是类似于:
公共流字符串作为字符串*20
*后面的数字是多少?如果您没有*#,那么它默认为16个字符。试着把这个数字做得更大,比需要的大一点可能不是一个坏主意。
如果有帮助,请告诉我们。
珍妮特
新对话如下:
传感器清楚地输出了大量二进制字符。虽然您可以在CRBasic中将这些数据写入字符串,但您需要小心处理和查看这些数据。
首先,您需要注意,CRBasic将null(char(0))作为字符串的末尾。因此,如果数据中可能有一个null,你必须仔细处理字符串,因为记录器中的大多数字符串函数只会处理到null的字符串。
在这种情况下,通常的技巧是使用MoveBytes命令将数据从字符串中移出到另一种类型的变量中,例如一个或多个long,然后以该格式处理和/或存储该数据。
如果你没有空字符,那么大多数字符串处理都可以工作,然而,如果你使用我们的PC或事实上大多数其他软件产品查看字符串,如果字符串中有二进制非打印字符(显然有),你在屏幕上看到的内容可能是不可预测的,这取决于程序如何解释字符,例如,许多将从字面上处理回车,并且如果找到中间字符串,将导致字符串的末尾被写在字符串的开头的顶部。
作为一般规则,如果有二进制字符,尽管您需要将它们转换为另一种类型,以便在PC上平滑显示和处理从收集到存储的数据。
我目前在FlowScout中使用ruben,该链由RS232空字符、分页符、回车读取,因此我们没有找到如何读取字符串,当我们尝试读取字符串时,没有显示任何字符。