CR1000 OS 20
更新:07-09-2010
- 添加CRBasic运营商 ,*=, +=,-=, /=, =,^=, & =。
- 增加了CSIJSON文件格式的TableFile选项。
- 新增EC100和EC100Configure。
- 增加了CWB100Routes(port, Destination as String)指令
- 当返回一个字符串时,TableName.TimeStamp(2,n)增加了一个选项,以便日期/时间被格式化为一个标准的Internet时间戳;例如,2010年4月20日星期二03:25:15
- 增加DHCP prenew命令,在以太网接口上重启DHCP。
- 增加了新的数据记录器web服务,包括使用cpu:的基本身份验证。csipasswd文件。
- 使用“可选”关键字为用户函数和子例程添加可选参数。可选参数必须初始化,而必需参数不能初始化。当Function和Subroutine调用想要使用默认可选参数时,它们传入一个逗号。
- 增加了返回变量长度的ArrayLength (Variable)函数。对于String类型的变量,返回字符串数组可以容纳的字符总数。
- 增加了ReadOnly声明,将一个逗号分隔的变量列表(公共或别名)标记为只读。
- 为FFTSpa添加了一个可选的可变数组参数,如果存在,将在编译时用FFT的频率轴初始化。
- 增加了ArrayIndex(name)函数,它将返回无线传感器网络阵列或新字段名称阵列中名称的索引。
- 为EmailRecv添加最多3个可选参数,以便返回响应头中的From、Subject和Date字段。
- 增加了一个选项(2)到SecsSince1990函数,假设日期/时间格式是在收到的电子邮件的头部;如。“2010年3月26日星期五03:21:56”,这是一种标准的互联网格式。
- 在ModBusMaster中增加了一个可选参数,它将指定寄存器的顺序和整数的长度,规格与ModBusSlave中的可选参数相同。
- 增加了CommsMemFree(3)到状态表,帮助跟踪TCP/IP内存使用情况。
- 对DNP3和HTTPS协议实现TLS协议。必须激活TLS设置。
- 修正了-0.0字符串转换挂起运行的程序。
- 修改TimeIntoInterval/IfTime,允许参数可变。
- 更改SerialOpen以允许它具有可变波特率。
- 更改了子例程和用户声明的函数,这样可以用比声明的数量更少的参数调用它们。此外,Sub中局部变量的数组长度接受传递给局部变量的变量的数组长度。
- 更改调制解调器拨号,使响应不区分大小写。
- 固定最大值,最小值,SampleMaxMin, Totaltize, Average, StdDev, Moment当源为TableName时。字段名,类型为FP2。
- 通过在远程和本地的数据记录器中指定DataInterval,一个间隔驱动表的多条记录可以被收集。2)更改,使时间戳始终是远程的。以前,如果只收集了一条记录,那么它就是本地数据记录器的时间戳。
- 修复了TableFile为带有BOOL4的表写入tob1文件的问题。
- 修正了SDI12传感器I!返回字符串。
- 固定慢序列扫描在管道模式运行时,主扫描有一个长扫描间隔(~10min)导致看门狗时,慢扫描执行。
- 改变了最大/最小时间戳的时间,以不总是使用主扫描时间戳。
- 修正了在scan. nextscan之外运行的表中的第一个时间戳。
- 修正了输出表中不使用inlocnames空间的采样表达式。
- 改变PWM检测端口是否已改变为输入,如果是这样,重新配置端口功能为PWM。
- 改变PWM指令,允许一个可变周期。另外,修改了使用端口的检查,以检测与PWM和TimerIO的冲突。最后,允许多个PWM指令在同一个端口上使用。
- 修正了EssVariables的内存分配问题。
- 固定表达式与字符串连接,使用表名。Fieldname和一个带有可变索引的字符串数组导致预编译器崩溃,原因是访问空指针。
- 修改了DNP,允许最多4个主会话。
- 固定PortSet(9,X)写入port_config数组边界外的状态表“输出”。
- 在OS加载后强制重新初始化comms内存。
- 更改日期/时间格式的选项2,当日期< 10时,打印为个位数。
- 修正了字符串变量的声明,使大小规格可以用表达式表示。
- 修改了ModBusMaster,如果响应返回的长度不正确,则继续查找,而不是标记错误。这有助于防止前一个请求的延迟响应中止查找当前请求的响应。
- 修改了ModBusMaster,使结果代码总是正确的,它将正确地等待成功或超时。以前,对另一条ModBus Master指令的响应可能会使当前指令过早地认为它已经成功地进行了通信。
- 改进了ModBasSlave,允许返回64个浮标,而不是63个
- 修正了当结果变量为字符串类型且与搜索字符串相同时的SplitStr。
- 改变了扫描同步到实时工作的方式。以前,计算一个延迟时间,然后无条件地延迟运行序列,直到同步时间到来。这使得不可能检测到延迟期间发生的时间变化。对于长时间的扫描间隔,这会导致人们为了测试的目的而强制执行扫描。现在,序列被延迟了一个滴答,并且每次通过循环轮询延迟结束时间和新时间的设置。
- 固定慢序列扫描同步到实时时,扫描间隔为> 1小时。
- 固定的sdmccan使用外部扫描崩溃预编译器。
- 修正了ArgosData在没有足够的数据值覆盖所有字段时导致预编译器崩溃的问题。
- 增加的净空自动范围计算ACPower范围。
- 轻松校准检查参数。
- 固定FieldCal别名问题引入的变化,以加快别名计算(OS 18.01)。另外,在SampleFieldCal中添加一个检查,以确保相同的字段不会被加载多次。
- 修改了TimedControl,如果在新输入的索引处的扫描计数中加载了一个<= 0的值,则前进到下一个索引。检查所有索引,如果所有计数<= 0,则当前索引将保持活动状态(这将避免在所有计数为0时永远循环)。
- 固定表文件不写后表重置。
- 修正了当源变量的类型与所存储的值不同时,由Minimize和Maximize存储的第一个值。
- 固定别名时,多个别名声明在一行。
- 固定GPS时,试图写入NMEA句子字符串超出其尺寸。相邻变量会被覆盖。
- 更改为不启动HTTPS服务器,如果运行没有程序之前的操作系统下载。
- 将EthernetPower更改为1)依赖全局(而不是本地指令)来确定以太网芯片是否应该真正关闭/重启。2)当从以太网下电恢复时,如果没有配置静态IP地址,请重新初始化DHCP。3)修复,使它不可能停止出去的IP包时,它是打开的。
- 固定可能的看门狗定时器由于过多的TCP流量。
- 更改了EmailRecv使用“TLS”选项,但没有启用TLS设置,以优雅地返回一个适当的响应消息,而不是重置数据记录器。
- 修改SDI12 aI!命令,以便它符合标准响应。
- 如果资源(信号量)可用,改变RTOS函数的getres()调用不重新调度。这将加速那些频繁获取信号量的任务(例如comms),当其他以相同优先级运行的任务非常繁忙时(例如,以慢序列运行的“hog循环”)。
- 增加了在初始化最终存储内存之前锁定堆内存分配的机制。在分配最终存储和运行程序之间的一个小窗口导致堆内存分配试图从最终存储内存区域中获取内存,在它被初始化为最终存储后。这导致一个mem fail 5错误。
- 修改Status.CommsMemFree(1)的格式。它以100为基数显示4个不同的内存区域。
- 在启动时增加了校准值的检查。
- 修正了表达式包含字符串变量和TableName时可能出现的错误“内存不足”。字段名的值。
- 增强的别名,使具有相同名称的局部变量和全局变量可以正确地别名。
- 增加了最大可能并发的文件上传,包括上传表定义,从4到8。
- 修正了一个罕见的错误的结果代码,成功返回PakBus指令,如果响应来自之前超时的指令,而等待。
- 修正了当主程序文件和包含文件都被加密时的解密问题。
- 改进的数据记录器,因此它不会看门狗,如果TCP/IP数据包被用完,因为他们最终可以被释放。
- 改变了TCP/IP的写功能,使一个坏掉的套接字不能用完所有的TCP全局内存,从而导致一般的IP通信暂时停止。
- 当TLS处于活动状态时,扩展运行时内存,以防止在服务安全套接字时可能出现内存不足的实例。
- 修正了在输出间隔设置表禁用变量而不是扫描时错误跳过DataInterval记录的问题。
- 更改了串行I/O缓冲区管理,这样如果写入缓冲区赶上了读指针,那么读指针将被设置在写指针前面一个字节,导致缓冲区的大小减去一个字节的“未读”字节。这将影响SerialInChk、SerialIn、SerialInBlock和SerialInRecord指令。
- 更改了FFT和FFTSpa,使采样间隔参数接受一个非整数浮点入口。
- 增加了两个节拍(Fclk/2分辨率)的ASIC转换时间,使整个测量环路与Fclk/8边界对齐,以便同一通道上的单个测量代表将被对齐。这允许用户计算准确的采样间隔。计算是:#if logger_type = CR3000 Fclk = 14.7456 #else Fclk = 7.3728 #endif Tsample = (8.0/Fclk) * Int((settle*Fclk/8.0) + 0.5)其中settle是采样间隔(输入在设置时间参数中)。这个Tsample现在可以作为一个浮点数输入到FFT函数中,以给出用于生成时间序列数据的确切的采样间隔。这将导致FFT数据的正确bin频率表示。
- 更改StdDevSpa,从所有输入值中减去第一个值作为平均值的估计值,以减少精度误差。输出指令一直都是这样工作的。
- 更改以确保在设置时间时没有跳过扫描。
- 修正了慢序列FileOpen偶尔失败的问题,如果它是慢序列中的第一个指令。有一个标志测试,以确保程序运行之前,任何文件被允许打开。该标志由主扫描处理任务在其他任务启动后设置。