CompactRIO 控制系统与网络变量命令确认机制

需积分: 50 22 下载量 162 浏览量 更新于2024-08-06 收藏 11.87MB PDF 举报
"使用网络变量的简单的公认命令结构-gicv3_software_overview_official_release_b" 这篇文档主要探讨了在网络变量环境下实现一种基于命令的确定性通信结构,特别是针对cRIO(Compact Remote Input/Output)系统和NI(National Instruments)技术的应用。这种结构在自动化和控制系统的背景下,对于确保命令的正确执行和反馈至关重要。 首先,PSP(可能是Protocol Stack Provider)协议在订阅者之间提供连接管理功能,变量节点会返回连接状态,同时通过错误输出终端报告异常情况。然而,某些应用可能需要更复杂的通信机制来获取命令执行的确认。为此,文档建议使用第二个网络变量作为确认通信通道,以确保控制器不仅接收了命令,还成功执行了命令。图4.32展示了这种简单的公认命令结构,其中包含命令解析任务和相应的数据交互。 在更广泛的上下文中,文档的章节涵盖了以下主题: 1. **第一章 概述及背景**: - 提供了开发指南的概述,定义了常用术语。 - 介绍了机器控制架构的基本概念,讨论了控制系统的配置和结构。 - 详细讲解了CompactRIO系统,包括实时控制器、可重构FPGA(Field-Programmable Gate Array)机箱以及工业级I/O模块的功能和特点。 - 列出了CompactRIO的关键规格信息。 2. **第二章 控制的基本架构**: - 深入讨论了基础控制器架构,包括其初始化、控制和关闭规则。 - 提供了一个初级控制器架构的示例,强调了基于状态的程序设计的重要性。 - 引入了状态机的概念,解释了如何利用状态机进行程序设计,并展示了在LabVIEW中创建状态机的实例。 - 进一步阐述了状态图表的使用,帮助理解控制逻辑的可视化表示。 该文档是为使用cRIO和NI技术的工程师准备的,旨在提供一种有效利用网络变量进行可靠通信的方法,特别是对于需要确认机制的控制应用。通过理解这种命令结构和控制系统的底层原理,开发者可以构建更加稳定和高效的自动化解决方案。
114 浏览量

请以最详细的方式解释这段代码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

157 浏览量