修改CR1000输出 _Campbellsci论坛问答

有没有办法在CR1000上模仿旧的基于数组的格式,这样我就有了一个表,每个时间戳有多行输出。

我正在对12个独立的腔室进行采样,而不是在一行上有12个表或所有数据,我希望有一个有12行独立数据的表。对于较旧的数据记录器,这可以通过给每个腔室提供自己的输出和阵列ID来实现。

修改CR1000输出
_Campbellsci论坛问答

而不是这样

101,2007,283,1004,4.125,13.97,26.16,77.9,23.61,77.7,.215
101,2007,283,1005,5.125,13.97,26.16,77.9,23.27,77.6,.223

我想这样做

101,2007,283,1004,4.125
102,2007,283,1004,13.97
103,2007,283,1004,26.16
104,2007,283,1004,77.9
105,2007,283,1004,.215
101,2007,283,1005,5.125
102,2007,283,1005,...

谢谢

做记号

新对话如下:

你好,马克,

我希望其他人能提供一个优雅的解决方案,但我认为没有。

我想说,你想做的事情是可能的,但需要很多步骤。首先,在DataTable指令中需要一个复杂的TriggerVar。在每个数据记录中包括一个腔室ID的样本。使用LoggerNet以CSV格式收集数据。然后使用“拆分”重新排列列,使您唯一的腔室ID成为第一列。

或您可能可以在Split或电子表格或数据库应用程序中完成整个任务。使用您描述为“”的文件格式;而不是“;操纵它给你想要的东西。

祝你好运
珍妮特

*最后更新者:Janet于2009年3月17日上午9:43*

新对话如下:

嗯…我想你可以通过使用Split进行后处理来创建这样的文件。

如果您还没有使用LoggerNet输出格式“”保存文件;阵列兼容CSV”;,然后,您将需要查看date()函数,该函数可用于将基于表的时间戳转换为基于数组的时间戳(在Split中的Select行,按F1,然后单击Special Functions链接)。

接下来,在Split中创建一个包含多个输入文件的标准杆数文件(每个输入文件对应一个表数据文件)。默认情况下,“拆分”有一个用于第一个文件的选项卡--使用“编辑|添加数据文件”添加更多文件。

当您运行Split时,您实际上会在页面上的一个连续记录/行中看到所有文件的输出。但是,“拆分”将允许您在选择行中输入一些特殊字符,包括回车(请再次参阅“特殊功能”帮助)。因此…在为每个文件的Select行上的数据指定元素后,您将输入一个“;crlf”;。例如,

输入文件1的选择行(假设每条记录中有5个元素):

1..5,立方英尺

输入文件2的选择行:

1..5,立方英尺

您也可以将选择行格式化为:

1,2,3,4,5,立方英尺

1,2,5,crlf(如果你想省略一些数据)

完成标准杆数文件的全部设置后,可以通过在LoggerNet的任务管理器中将其设置为任务来自动执行标准杆数文件(从工具栏的文件菜单中,选择打开|任务)。打开主题的任务母版的帮助,该主题提供了有关在任务母版中设置拆分任务的信息(位于主题底部,示例#1)。

在自动任务中,如果您希望“拆分”开始读取上次停止处理的数据文件(因此您只处理文件中的新数据),请按“输入文件”选项卡上的“偏移/选项”按钮,然后选择“最后计数”。请注意,这是通过查找文件中写入的最后一个已知字节位置来实现的,因此,如果文件大小发生变化,则它将仅从文件顶部开始(例如,如果您出于某种原因决定从文件顶部删除一些记录,因此文件现在比最后一个知道的写入位置小)。在“输出”选项卡上,可以选择“覆盖现有文件”、“附加”或“创建新文件名”。您也可以进行一些格式化以获得书面报告,或者只为逗号分隔的文件选择逗号文件格式。

哦,你还想在“开始”条件下使用“时间同步”选项,这样,如果你的一个数据文件缺少一条记录,或者它们都不是在同一日期/时间开始的,就会为丢失的数据插入空格,而不是像“拆分”一样将文件融合在一起。再次检查“帮助”:)在“开始条件”行按F1,并选择时间同步功能|同步两个或多个数据文件。

我希望这能帮助你指明正确的方向。我知道要设置的内容很多,而且Split语法可能很有挑战性,但一旦设置了标准杆数文件和Task,您就不用再考虑它了:)

达纳W

新对话如下:

谢谢Janet和Dana。我也希望在数据记录器中找到一种简单的方法。

哦,好吧,我想数据库的人可以用Split或他们使用的东西来计算后处理部分:)

再次感谢。我喜欢论坛。

做记号

新对话如下:

嗨,马克,

还有其他方法可以做到这一点(如果你仔细想想,可能有几种)。您可以将所有数据存储到一个表中,使用TableName.FieldName语法(请参阅帮助)从每个腔室的第一个表中提取数据,并将其全部连接到一个字符串中,然后将每个字符串采样回不同的表中。例如,

字符串C1=“;101〃+&”";+Mytable.TimeStamp(1,1)+”";+Mytable.Chamber1Field1(1,1)+”";+MyTable.Chamber1Field2(1,1)+。。。

(为所有12个表创建一个字符串)

然后在第二个数据表中,对每个字符串进行采样:

数据表(表,True,1000)
示例(1,字符串C1,字符串)
示例(1,字符串C2,字符串)


床头柜


这将导致数据表的标准引用时间戳,加上字符串中的剩余值。我不知道你的摄取程序是否能处理字符串。。。

还有另一种方法——使用tablename.fieldname语法,并使用FileOpen/FileWrite函数将字符串写入存储在数据记录器的USR驱动器上的文件(阅读有关USR驱动器和file函数的帮助)。这将消除由于将数据存储到第二个表中而导致的时间戳。

希望这能有所帮助。哦,等等。。。你说轻松吗?)

Dana公司

分享到:

原文链接:,转发请注明来源!
海洋仪器网 仪器使用 修改CR1000输出 _Campbellsci论坛问答
「修改CR1000输出 _Campbellsci论坛问答」评论列表

发表评论