Advertisement

为何 IEC16499 不温不火?

  •  5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:None


简介:
IEC 16499标准探讨其在能源需求管理中的应用现状及原因分析,剖析该标准未能广泛推广的因素。 在上世纪九十年代,国际电工委员会(IEC)开始制定面向分布式工业过程、测量和控制系统的基于功能块编程的国际标准——IEC16499。该标准的第一部分于2000年正式发布,并且全部内容在2005年完成。根据IEC的规定,这项标准每五年会进行一次修订,最近的一次是在2015年。 IEC 61499工作组的成员来自美国、日本、英国和多个欧洲国家,他们代表了工业控制领域的供应商与用户。尽管这是一个由众多重要参与者共同开发的标准,并且学术界对其研究热度较高,发表了大量论文,但在工业界的推广却进展缓慢。除了奥地利的nxtControl公司之外,像西门子、施耐德以及霍尼韦尔这样的大型企业对这项标准的应用似乎并不积极。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • IEC16499
    优质
    IEC 16499标准探讨其在能源需求管理中的应用现状及原因分析,剖析该标准未能广泛推广的因素。 在上世纪九十年代,国际电工委员会(IEC)开始制定面向分布式工业过程、测量和控制系统的基于功能块编程的国际标准——IEC16499。该标准的第一部分于2000年正式发布,并且全部内容在2005年完成。根据IEC的规定,这项标准每五年会进行一次修订,最近的一次是在2015年。 IEC 61499工作组的成员来自美国、日本、英国和多个欧洲国家,他们代表了工业控制领域的供应商与用户。尽管这是一个由众多重要参与者共同开发的标准,并且学术界对其研究热度较高,发表了大量论文,但在工业界的推广却进展缓慢。除了奥地利的nxtControl公司之外,像西门子、施耐德以及霍尼韦尔这样的大型企业对这项标准的应用似乎并不积极。
  • 构造函数虚函数
    优质
    简介:本文探讨了为什么C++中的构造函数不能被声明为虚函数,并解释其背后的原理和设计考量。 ### 为什么构造函数不能是虚函数 #### 引言 在面向对象编程中,构造函数和虚函数是非常重要的概念。构造函数用于初始化对象的状态,而虚函数则支持多态性,允许基类指针或引用调用派生类的方法。这两种机制在C++语言中特别常见。本段落将探讨为什么构造函数不能被声明为虚函数,并深入分析背后的原因。 #### 构造函数的本质 构造函数的主要职责是初始化对象,确保对象在创建时能够处于有效状态。构造函数可以有多种形式:默认构造函数、带参数的构造函数、拷贝构造函数以及移动构造函数。这些构造函数负责设置对象的初始状态,使对象准备好进行后续操作。 #### 虚函数的概念 虚函数的主要作用是实现多态性。通过虚函数,在基类中定义接口,并在派生类中重写这些接口以提供具体实现。当使用基类指针或引用调用虚函数时,实际执行的是该指针或引用指向的对象所属类的版本。这种方式支持动态绑定,使得程序具有更好的灵活性和可扩展性。 #### 构造函数不能是虚函数的原因 构造函数不能作为虚函数,这是因为构造函数与虚函数的目的截然不同。下面详细解释这一点: 1. **概念上的不兼容性** - 构造函数的目标是在对象创建时初始化其状态。 - 虚函数支持多态性,即根据实际类型调用不同的实现版本。 2. **运行时类型识别(RTTI)的问题** - 虚函数机制依赖于运行时确定实际调用的类。 - 构造函数在对象未完全构建完成之前初始化状态,此时类型的明确信息未知。 3. **虚函数调用的限制** - 在构造过程中,基类到派生类顺序执行构造器,VTable指针还未更新为最终类型版本。 4. **潜在的安全问题** - 构造期间访问未初始化成员可能导致程序崩溃或数据损坏。 5. **编译器优化的考虑** - 许多编译器会自动采用早期绑定处理构造函数中的虚调用,但效果有限。 #### 总结 构造函数不能作为虚函数是因为这与其本质功能不符,并且存在概念上的冲突和技术限制。构造函数的任务是确保对象正确初始化,而虚函数则是为了实现多态性。这两者的结合不仅没有实际意义,反而可能导致一系列潜在的问题。因此,构造函数不应声明为虚函数。 另一方面,析构函数通常建议声明为虚函数以支持多态性的销毁过程,这与构造函数形成了鲜明对比,并展示了C++面向对象设计原则的重要性及其在实践中的应用。
  • BIOS中找到USB-HDD选项
    优质
    本文探讨了在BIOS设置中无法找到USB-HDD选项的原因,并提供了可能的解决方法和注意事项。 对于现代电脑而言,大多数主板都支持USB启动功能。如果在BIOS设置中找不到“USB-HDD”选项,则可能是相关设置不当所致。首先需要开启对USB启动设备的支持,例如找到类似“USB Storage Legacy Support”或“USB Storage Function”的选项,并将其设为启用状态。 接下来,在没有看到“USB-HDD”作为启动类型时,可能是因为BIOS将移动硬盘视为普通硬盘了。此时,请将启动类型设置为“HDD”,然后在具体的启动设备列表(例如:“Hard Disk Boot Priority”)中选择您的移动硬盘并设定其为首选的启动选项。 需要注意的是,不同品牌的主板可能会有不同的BIOS菜单和选项,因此建议参考详细的主板说明书来进行操作。
  • 详解小车直的原因
    优质
    本文深入分析了小车行驶中出现偏离直线路径的问题,探讨了几种常见原因,并提供了相应的解决方法和预防措施。 这个问题在智能小车领域非常常见,尤其是在当前主流的差分驱动模式下更为突出。“差分驱动”是指通过两个独立电机分别控制左右轮转动来实现车辆前进和转向的功能。而“小车走不直”的问题也恰恰源于这种驱动方式的特点。
  • 宜用乘法器作调制器或混频器?
    优质
    简介:探讨了在射频设计中,为什么不应使用乘法器直接充当调制器或混频器的原因,分析其局限性与替代方案。 Q:为什么我不能将乘法器用作调制器或混频器?它们不是一回事吗? A:实际上并非如此,理解它们之间的区别非常重要。 乘法器有两个模拟输入端口,其输出与两个输入信号的幅度相乘成比例: VOUT = K × VIN1 × VIN2 其中K是一个单位为伏特(V)的常数。理论上来说,在这种情况下,任意一个输入端都可以接收信号,并且输出结果不受影响。 调制器或混频器同样具有两个输入端口,但其中一个用于线性信号输入,另一个则作为载波信号输入。载波信号通常经过限幅放大处理,或者通过足够大的受限信号驱动来实现类似的效果。不论采取哪种方式,载波都会被转换成方波形式输出。因此,在这种情况下载波的幅度相对不重要——只要其大小足以产生所需的效应,并且不会将噪声或变化引入到最终输出中。 公式可以简化为: VOUT = K × VSIGNAL × sgn
  • JS代码面试题:0.1+0.2等于0.3?
    优质
    探讨JavaScript中常见的浮点数运算问题,解释为什么在JavaScript环境中执行0.1 + 0.2会得到一个与预期不同的结果。 在JavaScript中, 0.1 + 0.2 不等于精确的 0.3 是一个常见的面试问题,这涉及到浮点数在计算机中的表示与计算方式。这个问题源于浮点数在二进制系统下的表示方法以及IEEE 754标准。 按照IEEE 754标准定义,浮点数在计算机中存储和运算的方式受到严格规定。然而,在二进制系统中,并非所有十进制分数都能精确地转换为有限位的二进制小数形式,例如0.1(即十进制中的十分之一)和0.2。 具体来说,在十进制表示下, 0.1可以无限循环表示为0.1 * 2^0 + 0.01 * 2^-1 + 0.001 * 2^-2 等等,但二进制中没有类似的简单形式。因此,当尝试在二进制系统中存储这些数值时, 它们会被近似表示而不是完全精确。 JavaScript语言遵循IEEE 754标准,并使用64位双精度浮点数格式来处理`Number`类型的数据。在这种情况下,0.1和0.2的值被截断为有限长度的二进制形式进行存储。 当执行0.1 + 0.2的操作时, JavaScript实际上是在对这两个近似值进行加法运算,由于它们本身就已经存在微小误差,在相加后得到的结果也会含有这些误差。转换回十进制表示时,可能看到如“0.300000000000004”的结果。 为了验证这一点, 可以使用JavaScript的`toString(2)`方法将浮点数转换为二进制字符串进行观察: ```javascript console.log((0.1).toString(2)); // 输出: -1*2^-4 + 1*2^-5 + ... console.log((0.2).toString(2)); // 输出: -1*2^-3 + 1*2^-4 + ... ``` 可以看到,它们的二进制表示形式是无限循环小数。在计算机中, 这些数值被截断为有限长度的形式进行存储。 为了处理浮点数不精确的问题,JavaScript提供了如`toFixed()`用于四舍五入到指定的小数位和`toPrecision()`用于控制总的数字位数的方法,但这些方法并不能改变原始的浮点数存储方式。它们只是返回一个字符串形式的结果。 综上所述, 0.1 + 0.2 不等于精确的 0.3 是由于二进制表示法及IEEE 754标准导致的精度问题,在编程中需要注意避免此类误差,特别是在金融计算或需要精确比较浮点数的情况下。
  • 舞的MMD模型
    优质
    这段简介可以这样写:不知火舞的MMD模型是一款以《街头霸王》系列中的角色不知火舞为原型,在MikuMikuDance软件中制作的角色模型,便于用户进行二次创作和演绎。 最新不知火舞MMD模型已从XPS提取并优化了骨骼结构,现可直接使用。
  • 3D 舞 游戏模型
    优质
    3D不知火舞游戏模型是一款以经典街机游戏角色不知火舞为原型制作的高质量三维模型,适用于多种游戏和展示场景。 不知火舞,3D游戏模型,低模,贴图齐全,模型格式为3dsmax。
  • 带状线可跨越其他电源分割区域
    优质
    本文探讨了电路设计中带状线不能跨过不同电源区域的原因及其重要性,深入分析由此可能产生的电气干扰和噪声问题。 带状线是印刷电路板(PCB)设计中的常见传输介质,在设计过程中需考虑诸多因素以确保信号稳定及电路性能。特别地,当带状线跨越电源分割块时会引发一系列问题,主要涉及信号完整性和电源分配稳定性。 首先,带状线位于两个参考平面之间的一条导电路径上,并被夹在两层完整的地或电源平面中。由于这种结构,在传输信号过程中电磁场受到限制于这两个平面内。然而,当带状线跨越不同电源分割块时,其上方或下方的参考面会被切断,导致阻抗不连续性增加,从而影响到信号质量。 对比微带线(仅在地平面上方有参考面),尽管带状线即使跨过电源分割区域仍保留一个完整的参考平面,因此反射较小且电磁辐射较少。但当其跨越不同电源分割块时,回流路径被切断导致回路面积增大,从而增加EMI和信号品质下降的风险。 在实际PCB设计中,若1.5V供电走线需经过3.3V的电源分割区域下方,则尽管地平面理论上可以提供返回电流路径且阻抗看似无问题,但跨越不同电源分割块会导致回路不连续性。这可能引入不必要的耦合或噪声干扰,并影响到电源稳定性。 此外,信号直接从一个电源层跨过另一个分隔区也会引发类似的问题:增大了回路面积并增加了EMI和信号完整性风险。尽管理论上可以将地层视为镜像面以跨越分割缝,但这种设计通常不被推荐,因它破坏了原本的电源分配与隔离考量。 因此,在PCB设计中应尽量避免带状线跨过不同电源分隔块或采取其他措施确保信号稳定性、电磁兼容性及电源纯净度。例如,可以在电源分区之间设置隔离槽以减少信号干扰;或者利用穿孔在各层间传输信号绕开平面分割区域;还可以使用电容或磁珠等元件抑制EMI。 总之,带状线不宜跨越其它电源分隔块主要考虑了信号完整性、电磁兼容性和电源稳定性。设计时应尽量避免此类情况发生,并采取相应措施最小化负面影响。