互联网驱动的分布式命令架构:GICV3软件概览

需积分: 50 22 下载量 125 浏览量 更新于2024-08-06 收藏 11.87MB PDF 举报
"使用网络变量的简单命令构架-gicv3_software_overview_official_release_b" 本文档主要介绍了如何利用网络变量构建一个简单的命令架构,特别是针对基于cRIO (Compact Remote Input/Output) 和NI (National Instruments) 技术的分布式控制系统。网络变量是LabVIEW中的一个重要特性,它允许不同设备间的通信和数据共享,特别是在工业自动化和远程监控系统中。 首先,文档提到了一个带网络通讯的最终应用程序示例(图4.12),该应用能够从网络上的任何Lab VIEW节点持续更新设置点。这表明网络变量可以用来实时同步和更新分布在不同位置的设备参数。 接着,文档指出可以通过网络发布的共享变量来发布命令,这意味着系统中的各个部分可以通过网络发送和接收指令,实现远程控制。这种机制与之前章节中介绍的基于命令的构架相结合,可以实现从网络上的其他设备生成命令,扩展了控制系统的灵活性和可达性。 互联网技术在这样的命令架构中起到关键作用,它允许分布式系统发布其状态,并协调它们的行为。图4.13进一步展示了使用网络变量的简单命令构架,其中采用了发布-订阅模式。这种模式下,发布者(publisher)将数据发布到网络,而订阅者(subscriber)可以实时接收这些数据,无需两者之间直接建立连接。这简化了同时执行多个命令的过程,因为多个设备可以同时订阅并响应同一网络变量的变化。 此外,文档还涵盖了控制系统的基础架构,包括对CompactRIO的介绍。CompactRIO是一种集成了实时控制器和可重构FPGA(Field-Programmable Gate Array)的嵌入式系统,适用于工业环境中的高性能、低延迟控制应用。实时控制器负责执行控制算法,而FPGA则用于定制硬件加速或I/O处理。CompactRIO通常配备有工业级I/O模块,能够适应各种传感器和执行器。 在控制系统的配置中,文档提到了初始化、控制和关闭规则,这些都是构建一个可靠控制系统的基础。初始化规则确保系统在启动时正确配置;控制规则定义了系统运行时的行为;而关闭规则则规定了在系统停止或重启时应如何安全地关闭和保存状态。 文档还讨论了基于状态的程序设计,状态机作为一种强大的设计工具在控制系统中广泛使用。状态机通过定义不同的状态和状态转换来描述系统的行为。在LabVIEW中,状态机可以直观地用状态图表表示,有助于开发者理解和调试复杂的控制逻辑。 本资源提供了关于利用网络变量进行分布式控制系统的详细信息,包括其架构、原理以及在LabVIEW中的实现方法,特别强调了网络变量在发布-订阅模式下的应用,这对于实现跨设备的实时通信和命令控制至关重要。
2023-07-25 上传

请以最详细的方式解释这段代码with a01 as( select sm_id, isname, case when isname in ('冰箱', '冷柜') then '制冷' when isname = '商空' then '楼宇' when isname = '家空' then '空调' else isname end as cyx, factory_code, mtname, curstatus, model_code, model_name, start_time, --'保养起始时间' expire_time, --'保养到期时间' substring(start_time, 1, 7) byqsny, substring(expire_time, 1, 7) byjssj, case when stype = '2' then '二保' when stype = '3' then '三保' else stype end as bylx, case when mm_type = '2' then '二保' when mm_type = '3' then '三保' when mm_type = '4' then '三保带二保' else mm_type end as mmtype, --实际保养类型 upper_time, --上次保养时间 mm_time, --实际保养时间 scustcode, -- 实供应商编码 scustname, --实供应商名称 mould_status, --模具维保状态 mm_status, --实际是否保养 smould_status --模具实际维保状态 from dwd_mm_staymaintain_all a where by_status <> '无需保养' and length(factory_code) = 4 and curstatus not in ('报废中', '已报废', '冻结数据', '垃圾数据') and isname in ('冰箱', '冷柜', '家空', '商空', '洗涤', '厨电', '热水器') and substring(expire_time, 1, 10) <= from_unixtime(unix_timestamp(), 'yyyy-MM-dd') and expire_time is not null and expire_time <> '' ), b01 as( select cyx, byjssj, count(sm_id) by_ying from a01 group by cyx, byjssj ), b02 as( select cyx, byjssj, count(sm_id) by_shi from a01 where mm_status = '已保养' group by cyx, byjssj ),c01 as( select from_unixtime(unix_timestamp(), 'yyyy-MM') months, t1.cyx industry, t1.byjssj byjsyf, cast(t1.by_ying as string) by_ying, cast(t2.by_shi as string) by_shi, cast(t2.by_shi/t1.by_ying as decimal(8,5)) bywcl from b01 t1 left join b02 t2 on t1.cyx = t2.cyx and t1.byjssj = t2.byjssj) insert overwrite table dh_yf.tt_mould_asset_maintenance_overview select months, industry, byjsyf, by_ying, by_shi, cast(bywcl as string) bywcl, from_unixtime(unix_timestamp(), 'yyyy-MM-dd') etl_date, '%' unit from c01

2023-05-30 上传