CR1000 OS 14
更新:07-19-2007
- 修正了在Select Case中导致对Case语句计算错误的错误。这个问题取决于内存的状态(很重要!)
- 修正了在多个序列中同时使用SDM指令、SerialInRecord或SerialOutBlock时跳过扫描的可能来源。在流水线模式中用于同步测量和处理的事件被用于顺序模式和慢序列。在这些情况下不需要同步,因为从处理调用获取代码。问题是事件在调用获取代码之前被清除。如果多个线程(慢序列)使用该事件,则该事件可能会在设置之后和识别之前被清除。这留下了一个线程,直到超时。这导致跳过扫描。修复的是,如果在管道模式快速扫描,只设置和等待事件。这增加了对条件的额外检查。这改变了所有SDM指令,SerialInRecord和SerialOutBlock。 (Significant)
- 添加AVW200()指令。
- 添加函数FileTime(文件句柄)。以1990年以来的秒为单位返回文件创建时间。如果函数失败,则返回-2^31。
- 新增函数FileRename(old_fname,new_fname),其中文件名为字符串。如果成功则返回TRUE,否则返回FALSE。如果没有指定驱动器,则假设为“CPU:”。如果驱动器不同,则将文件移动到新位置,并删除旧文件。如果new_fname已经存在,则返回FALSE。
- 增加了位移运算符>>和<<。
- 为显示菜单添加了一个新的模式,完全不显示系统菜单。这是通过AddToSystem参数代码-3完成的。使用安全级别2(与从其他显示菜单设置变量相同)。
- 增加了量程代码MV2500C (CR3000中的MV5000C),它的工作方式与其他开放检测量程代码一样,但将激励设置为全量程DAC (CR1000的~2700mv, CR3000的~5200mV),因此如果桥架打开,桥架将返回一个值> 1。还增加了CR3000范围代码MV1000C(设置激励~1200 mV)。
- 为空的显示菜单增加了一个检查…EndMenu和空的SubMenu…EndSubMenu。这些会使预编译器崩溃。
- 在自定义菜单中允许变量更改之前,增加了安全代码检查。
- 增加了检查所有Table指令以确保它们不在条件语句中使用。另外,添加了检查来捕获DataTable. EndTable中多次出现的DataInterval。
- 修改了安全性,如果它被设置为-N,那么可以用65536-N或(-N AND 65535)来解锁。
- 更改了键盘/显示安全,以便可以在与查看数据表相同的安全级别上查看(未更改)设置。
- 允许通信指令中的安全参数为变量或表达式。
- 固定http (WebPageBegin/WebPageEnd)设置值命令时,安全是活跃的。
- 改变了http安全与PakBus安全兼容。
- 如果安全性处于活动状态,则限制对程序文件的FTP访问。将Admin附加到用户名和密码的最高安全级别将允许程序文件访问。
- 映射EX1 . .EX3是预定义的常量,就像VX1..VX3。这与数据记录器接线面板上的标签相匹配。
- 改变定时器功能,使用“系统时间”作为参考。这消除了被称为外部扫描的问题…NextScan,以及从子程序等调用,并允许在扫描(10mS分辨率)内定时,而不禁用低功耗待机。
- 固定TimerIO边缘设置。如果设置下降沿,则内部寄存器共享的对中相邻通道被设置,而不是所期望的通道。对是(1,2)(3,4)(5,6)和(7,8)。
- 增强常量表编辑功能,包括Alias声明。
- 在解析常量后,将Const释放用于表达式的内存。
- 更改了Data和DataLong以允许表达式。表达式的值必须为常数。
- 固定传递常数字符串在子程序。如果字符串不是变量,则不能正确计算字符串的大小。
- 在声明别名时,请确保它们不是预定义的(或用户定义的)常量。
- 当同步主扫描到扫描间隔时,不要增加管道模式背景校准跳过扫描。
- 修正了If语句未初始化变量传入表达式求值器的问题。如果在表达式中使用变量字符串,这可能会导致varoutofbounds错误。
- 改变了FileManage,所以如果一个变量在一个表达式中被使用,总是计算表达式并检查操作。此外,更改了“立即运行”属性的检查,以允许所有驱动器(这修复了记录器可能没有程序运行的问题)。
- 固定中位数与代表> 0。当到达表的末尾时,数据正在写入到结束指针之外,这可能会导致看门狗错误。
- 更改了SendData和SendTableDef,不允许与隐藏表,并使用表id的映射,发送到LoggerNet而不是数据记录器内部表id。这是必需的,这样LoggerNet就只能从它的表定义中包含的表接收单向数据,并且正确映射到它与表关联的id。
- 修正了一个由于调用内存分配程序请求0字节而导致的罕见的内存损坏bug。内存有两种检查方式,如果内存排列正确,则零字节的分配将导致两次传递给出不同的未分配块数量的结果。这将导致一个mem fail3错误。
- 固定的文件下载的操作系统处理的情况下,没有足够的内存存储进入的操作系统。内存是1)被损坏的第一个包不适合,2)没有被释放后,故障报告给软件。
- 改变操作系统关机代码,以确保脉宽调制(PWM)是禁用的。
- 脉宽调制(PWM)的工作负载为1.0和0.0。
- 从脉宽调制(PWM)指令中删除边缘参数。不需要,因为倒边和1 - duty是一样的。
- 改变了串行通话,不再等待完整的100mS字符从终端模式。它现在轮询是否已经存在一个字符。
- 将串行通话模式改为接收到3个ESC字符后退出
字符。
- DNP3实现了对象40.4(双精度),并修复了一个关于可变从地址和主地址的bug。地址在编译时被检查,然后才会有有效值。
- 修改DNP3使从地址为变量。
- = PakBusAddress WebPageBegin / WebPageEnd:添加命令。这个命令返回下一个PakBus地址,等于或大于100,不包含在数据记录器?S路由表或邻居列表
- 改变网页功能,不硬编码的内容类型在头。这允许使用其他字体类型。
- 固定的网页功能发送头和主体标签,没有它的最新记录页面将不会刷新每10秒。
- 更改SMTP EmailSend,以便可以发送更大的附件。
- 固定服务多个套接字使用相同的协议(HTTP, TELNET, MODBUS, SMTP, POP3)并发。
- 改变了FTP服务器更有效率,这样的错误写入慢媒体由于缓冲区空间,例如CPU FLASH内存,被最小化。
- 更改FTP,使其无法读取隐藏文件。
- 扩展了隐藏文件支持,不允许打开被隐藏的文件供读取。以前,隐藏文件只是从目录中隐藏。
- 如果路由表已经重置,那么立即尝试在所有PakBus TCP连接上找到一个邻居。
- 如果在一个PakBus TCP连接上还没有建立邻居,那么尝试通过一个Hello Request每10秒找到一个邻居。
- 固定的DNS设置条目时,试图删除现有的条目。
- 固定PPP,因此通信可以在大文件传输期间被抑制,以保护缓冲内存。
- 如果PPP拨号字符串为PPP,则作为PPP客户端,但不进行AT命令拨号操作,用于为PPP设置Raven modem。
- 当文件不能打开时,更改对FileUpload和FileDownload的响应为"file not currently accessible"。返回了以前不足的内存代码。
- 改变FileClose()在文件句柄无效时返回EBADFP(17),而不是0。
- 改变了ComME和Com310的PPP设置,当铃声响起时,超时后不会关闭。
- 更改^操作符,使其始终返回一个浮点数,即使操作符是长值。
- 改变Ln(X)当X是NaN或X <= 0时返回NaN而不是0。
- 修复了FileSend()方法,以便在超时后通信失败时关闭文件。
- 修正了读取隐藏文件导致文件句柄不打开的错误。
- 更改延迟,以允许变量间隔,如果延迟处理。
- 更改了移除一个宣告调制解调器已连接的邻居以不移除comport上的所有其他邻居。
- 固定的GetDataRecord()发送正确的签名,如果表id参数没有或与&H8000。
- 更改响应为单向数据包,以忽略它,而不是响应PakBus交付错误。
- 固定利基堆栈域名查找时,名称超过30个字符。
- 固定的SortSpa和中位数处理NAN的,和+/- INF. NAN将被排序到数组的顶部(最小值)。
- 固定PortGet在顺序模式在慢序列。
- 固定的脉冲计数内存分配时,使用所有10个脉冲通道(2个PC,和8个控制端口),每个单独的指令。
- 增加了连接字符串的CRBasic '&'操作符,这与Visual Basic兼容。
- 固定的TGA处理签名零与有效的数据。当良好数据导致零签名时,检测非零数据的逻辑是不正确的,并导致为良好数据存储NAN。
- 修正了通过返回正确的表ID来隐藏某些表时自定义收集表的问题。
- 不要截断状态表的tablenames字段中的表名。
- 更改键盘/显示实时数据显示,以处理最终存储读指针不在4字节边界。CR1000/CR3000可以处理对4字节值的读写,这些值不是4字节地址对齐,而是CR5000, CR9000崩溃(看门狗错误)这种情况。
- 更改表到表抽样,以适应CR9000。地址(指针变量)的上层位被用来传递信息。这将不会在CR9000中工作,因为地址需要上层位。
- 固定的子程序传递长和浮点字符串。到字符串的转换不正确。
- 固定转换参数的不同数据类型时,进入子程序。由于参数是在输入时复制的,如果声明的参数与传递的数据类型不同,则必须将参数转换为新类型。在某些情况下,这种转换是不正确的。
- 在将浮点数转换为整数和整数转换为浮点数时,转换NAN。
- 固定设置时间前,第一个背景缓慢序列完成。这导致了背景增益错误,从而导致测量值不正确地转换为mV。只有在启动程序后将时间设置在90秒内(最坏的情况),才会出现问题。
- 固定转换longnan到字符串。
- 直方图4d -如果所有4维被使用,那么输出将被线性化。因为OS内部只保留3个维度,所以输出必须线性化,才能成功地将表defs传递给LoggerNet。