行列视(RCV)生产数据应用系统产品简介

行列视(RCV,Row Column Vision)

【产品背景】

随着大数据、云计算、物联网等技术的发展和应用,生产型企业数字化、智能化建设如火如荼,可以说是遍地开花。其中数字化和智能化工厂最基础的一部分工作便是生产过程数据采集,这些数据反应现场实时设备状态、运行参数、趋势变化,一般需要专用的实时数据库(或时序数据库)进行存储,大型企业中检测数据对象超数十万,且是秒级数据,数据量大、管理复杂,在生产管理中发挥的作用也越来越大。

基于生产过程数据,可以做很多事情,包括生产过程实时监视、超温超压参数报警、设备状态变化提示、故障分析与预测、性能分析与诊断、生产统计报表、各种生产工况下的模拟试验等等。这些工作都需要计算机实现,然后由人工根据结果进行生产和管理应用。

由于行业特点,由计算机人员完成的基于生产过程数据的业务应用,由于专业问题,往往得不到想要的理想结果,导致生产企业在信息化建设方面反复验证,重复开发和建设,其中统计报表工作就是最典型的例子。基于生产过程数据的统计报表工作,在各生产型企业中普遍存在,以一家四台30万机组容量的国属发电厂来说,其报表涉及的种类或张数达数百张,不但包括自身生产管理实用,还涉及对集团、政府、电网及行业的报送,并且在企业中,由于不同业务系统解决的目标不同,导致报表工作分散到很多不同的业务应用系统中,从而人为的形成了很多数据小孤岛,间接导致报表工作中的重复填报、重复统计、交加引用、数据不一致等问题。

【产品概述】

行列视(RCV)生产数据应用系统是一套基于HTML5技术的web生产报表系统,系统以实时数据库+人工填报数据为主要数据来源,实现了生产数据的自助式、自动化、智能化、可视化应用

该产品面向生产型企业,可作为生产指标统计、指标治理、生产数据整合、生产报表制作、常规基于表格的数据分析等工具平台使用,通过该产品,业务人员(最终使用人员)可轻松自助搭建多人协作填报、性能计算、对标分析、关键指标预警、班值竞赛、超温越限监测、设备启停、监督报表、生产日报、指标驾驶舱、在线试验、双碳核查、成本分析、能量平衡分析、固废平衡……等业务应用,产品提供了国内外少见的基于实时数据库的生产数据应用建设平台的最佳解决方案。

【产品目标】

行列视,定位于生产数据应用领域,主要解决生产过程实时、历史数据与生产管理所需要的管理指标之间的统计、计算问题,以及基于生产过程数据和管理指标的各种日常工作、管理、和经营的业务应用自助建设问题。产品目标如下:

(1)实现企业生产指标的统一管理,行列视采用指标树全局指标管理模型、单报表应用级指标管理模型、跨报表应用级指标管理模型、子主报表应用级指标管理模型等方式,可实现整个企业指标的统一管控;

图:指标模型管理

(2)生产报表可视化,基于行列视,可实现各种即时报表、日报、周报、轮值生产报表、月报、年报等各种类型的生产报表(或人工、自动相结合的半自动化),可实现全厂跨部门报表工作的无纸化办公;

图:五值竞赛报表

(3)基于生产指标的各种业务应用的自助化服务,基于行列视业务人员可自助完成性能计算、对标分析、关键指标预警、班值竞赛、超温越限监测、设备启停、监督报表、生产日报、在线试验、双碳核查、成本分析、能量平衡分析、固废平衡……等常用业务功能的搭建,灵活配置、真正的零代码(不需要理解数据库、SQL语言),自助化服务;

图:业务应用(用电分析、性能分析、运行日志)

(4)基于指标的多维度数据分析,行列视产品的基础组件是一套本地化的在线Excel,兼容大部分微软Excel功能,借助该工具以及行列视提供的专业化指标计算关系溯源分析、历史报表纵向数据分析、跨报表指标联动分析等功能,实现生产指标的多维度分析。

图:数据应用设计界面

【产品优势】

行列视(RCV)生产数据应用系统是一套专门面向生产企业,以实时数据库系统(例如发电企业中SIS系统)为基础数据来源的专业化、自助化指标管控及指标可视化系统。类似产品在国内极为少见,产品所有功能均是日常企业管理业务的工具化映射,产品研发思路实用、创新兼具。

(1)支持指标数据快速治理,企业内部署一套系统即可实现指标的快速治理、统一管理、共享、应用及分析,行列视采用业务应用倒推指标的指标管理方式,数据治理方面创新主要体现在治理方式、治理过程上采用从上向下和从下向上相结合、岗位与专业相结合、可视化与工作内容相融合等多种方式进行数据治理。

(2)真正零代码报表工具,脱离数据库的表、记录、字段等术语以及SQL语言、ETL等计算机壁垒,行列视产品应用与实际工作方式无缝衔接,供业务人员及一般工作人员自助式使用,可视化应用方面与Excel(WPS)一样简单、方便,集成各种图表、计算函数、专业焓熵计算,支持与Excel(WPS)之间的导入、导出及复制功能。

(3)多数据源设计,支持国内外常见实时数据库,也可同时连接多套不同的实时数据库;数据取值方式上支持生产过程数据的参数加权、时间加权、异常数据剔除、时间剔除等专业化数据采集、统计方式;针对人工录入,可自定义录入界面,实现一次录入全厂使用。

(4)强大的前端编辑能力,行列视的前端(报表)展示界面上同样提供了类似后端设计似的界面编辑、数据修正、数据分析能力,对于生成后的数据可视化界面,可提供多次修正、重新计算、补算等辅助分析功能,能够方便分析数据来源及数据间的计算关系;

(5)零学习成本,由传统报表工作到行列视系统工作,半天就能成为成手,常规报表每天可完成10张以上生产报表制作。

(6)共享及服务能力,行列视能够方便集成到其他系统中,并作为指标中心和指标可视化中心为整个企业其他系统提供指标数据服务和指标可视化服务。

【典型功能】

行列视,功能设计简单实用,扩展性非常强(可以联想一下微软的Excel),下面简单罗列一下产品的部分功能:

1.个人首页,所有指标、报表、业务应用都是面向个人的,在个人授权的前提下,可公开发布私有报表,与其他用户共享指标、报表;

2.报表向导,提供了报表创建向导,可快速实现报表创建;

3.模板设计,提供了自助化、类似Excel、基于单元格式的数据可视化设计界面,实现报表界面灵活设计,满足99%生产报表格式设计需要,模板也可以由原有工作中的Excel导入、其他企业模板导入、系统预设等方式搭建;

4.图表,提供了二十多种图表,满足界面对柱状图、饼图、线型图的多样化展示需要;

5.数据源,提供了多种数据源接入能力,让报表界面动态关联实时数据库、关系数据库等多种数据源;

6.智能调度,提供了智能调度,让报表工作自动化,实现定期、定时自动生成;

7.计算分析,提供了多达400+函数,完全兼容Excel公式,同时提供能量函数、国标计算公式,解决各种专业化数据计算分析问题;

8.数据修正,提供了多维度指标修正功能,满足不同场景参数修正(根据月度、年度指标修正日指标)、数据重算、报表重算、历史报表补算,保证在生产口径和管理口径指标的一致性,方便指标做适应性调整。

9.安全,提供了丰富的权限管理,既能实现报表安全,也能实现数据安全;

【市场定位】

行列视(RCV)生产数据应用系统的产品定位主要是解决生产领域的指标治理、指标整合及报表可视化工作问题,所面向的业务范围是生产企业所必需的,虽然各企业中生产类报表工具建设普遍,但能够得到充分利用的较少,功能有限,建设完成后编辑能力不够,功能扩展性差,另外报表定位业务范围窄,很少有面向整个生产企业的数据整合、计算、报表、分析应用功能的工具,而本产品恰好符合该需求。

另外,同类型产品在国内很少,传统基于关系数据库(Oracle、Sql Server、MySql)的通用型报表工具、BI工具很多,但定位都不是针对生产型企业所需的指标治理和数据可视化,很难实际解决工作效率和工作量问题。所以结合基于本产品的项目经验来看,该产品在生产型企业(典型应用案例以发电企业为主)的市场空间非常大,具有较强的推广性。

基于本产品,市场上可重点定位解决如下几个方面的问题

(1)解决生产型企业的数据治理工作投资大、周期长,维护量大问题;

(2)针对整个企业具有多岗、多人均有报表工作现状,解决报表多、工作量大问题,可有效提高报表的80%-100%工作效率;

(3)解决基于指标业务应用的自助化问题,传统业务系统基本由软件服务商定制开发,扩展性差,且由于计算机技术壁垒,导致业务人员不能独立、自助式进行数据应用。基于行列视完全可以由专业人员进行自助搭建和应用,如性能计算、对标分析、关键指标预警、班值竞赛、超温越限监测、设备启停、监督报表、生产日报、在线试验、双碳核查、成本分析、能量平衡分析、固废平衡……等常用业务功能。

【应用场景】

以火力发电企业为例,典型应用场景描述如下:

(1)降低值长工作强度,提高数据分发效率

原有工作:每日凌晨需要将一天的关键指标例如运行、主要设备、燃料、化学、电网等专业数据进行汇总整理、计算,并通过邮件发送至领导及相关部门或是对外填报。

采用行列视后:由该产品定时、定期根据值长数据表格格式自动收集数据,并自动根据指标数值判断是否异常,将异常数据通过不同颜色标识,值长的工作变为数据验证并提交(系统可自动提交),提交后的数据其他用户可直接浏览或引用。

(2)改变煤质化验数据、燃料数据、电量数据录入和收集工作方式

原有工作:由化验、燃料、电气负责人员将数据录入到一定格式的Excel中,通过邮件发送给其他岗位,数据存在的形式为很多独立的Excel文件,有的企业需要单独将数据录入到指定系统,专门供指定的系统使用而不能共享;

采用本产品后:全厂统一定制录入界面,分配权限,由化验、燃料、电气负责人员将数据录入到本平台中,至于用途和数据共享问题不再考虑,由平台统一管理分发和引用。

(3)为节能专工、环保专工、燃料专工、市场人员和计划专工提供高效率报表、问题分析工具平台。

原有工作:节能专工、环保专工、燃料专工、市场人员和计划专工根据自己已有Excel模板或历史报表,将值长、化验专工、电气专工的邮件数据进行复制引用、汇总,对数据进行计算、修正,形成相应口径的数据报表,再通过邮件方式进行分发、上报,历史数据一般采用Excel文件方式存在,要想查看历史数据还需要逐个文件查找、打开、整合,然后才能分析;

采用本产品后:每天打开网页报表进行数据验证,对异常数据进行在线修正、保存,也可以直接打印,所有历史数据在线保存,随时查阅,也可以纵向分析历史报表指标数据的变化趋势。

(4)作为全厂数据整合工具和自助式数据分析平台,不同岗位、不同口径的指标数据都存储在系统中,实现了企业级数据共享池,不同数据由各专业、岗位负责,其他人员对数据只是引用,做更深层次的数据分析,为各种生产和管理工作提供快速、高效、全面数据支撑。

(5)形成全厂指标服务平台,该产品作为全厂数据汇集及工作平台后,也同步实现了全厂指标数据池,所以本产品同时提供了统一数据服务接口,供其他系统、上级集团、政府部门的数据引用,开放API、webService、WebSocket等接口方式,只需要关注所引用指标是哪一张报表中的哪一个单元格即可,通过权限管理实现统一管理和统一监视。

  • 13
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 6
    评论
提供的源码资源涵盖了安卓应用、小程序、Python应用和Java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。
### 回答1: 在C语言编程中,可以使用select()函数来设置socket通信rcv函数接收不到数据而不断开,可以参考以下示例代码: fd_set readfds; struct timeval timeout; timeout.tv_sec = 30; timeout.tv_usec = 0; while (1) { FD_ZERO(&readfds); FD_SET(sockfd, &readfds); retval = select(sockfd + 1, &readfds, NULL, NULL, &timeout); if (retval == -1) break; else if (retval == 0) printf("timeout\n"); else { recv(sockfd, buf, sizeof(buf), 0); printf("%s\n", buf); } } ### 回答2: Socket通信是一种常用的网络通信方式,通过使用Socket库的函数,可以实现进程之间的通信。在C编程中,设置Socket通信的rcv函数接收不到数据不断开可以通过以下步骤来实现: 1. 创建Socket:使用socket()函数创建一个新的Socket对象。参数指定了协议类型、套接字类型和协议编号。 2. 绑定地址:使用bind()函数将Socket绑定到本地地址和端口。这样就可以通过指定的地址和端口进行通信。 3. 监听连接:使用listen()函数将Socket设置为监听状态。这样,可以接受到来自远程主机的连接请求。 4. 等待连接:使用accept()函数接受来自远程主机的连接请求。当有连接请求到达时,accept()函数会返回一个新的Socket对象,用于之后的通信。 5. 接收数据:使用recv()函数接收来自远程主机的数据。recv()函数的参数包括接收缓冲区地址、接收缓冲区大小和其他控制参数。如果没有数据可用,recv()函数会阻塞等待数据的到来。 为了实现接收不到数据不断开连接,需要在recv()函数上设置超时时间。可以使用setsockopt()函数设置Socket的接收超时时间。通过设置SO_RCVTIMEO选项,指定接收超时时间的长度。如果在指定的时间内没有接收到数据,recv()函数会返回一个错误。 以下是一个使用C语言编写的示例代码: ``` #include <stdio.h> #include <stdlib.h> #include <string.h> #include <sys/socket.h> #include <arpa/inet.h> int main() { int sockfd, newsockfd, clientlen; struct sockaddr_in server_addr, client_addr; char buffer[1024]; // 创建Socket sockfd = socket(AF_INET, SOCK_STREAM, 0); if (sockfd < 0) { perror("Socket creation failed"); exit(1); } memset(&server_addr, 0, sizeof(server_addr)); server_addr.sin_family = AF_INET; server_addr.sin_addr.s_addr = INADDR_ANY; server_addr.sin_port = htons(8080); // 绑定地址 if (bind(sockfd, (struct sockaddr*)&server_addr, sizeof(server_addr)) < 0) { perror("Binding failed"); exit(1); } // 监听连接 if (listen(sockfd, 5) < 0) { perror("Listening failed"); exit(1); } printf("Server started. Waiting for connections...\n"); clientlen = sizeof(client_addr); // 接受连接 newsockfd = accept(sockfd, (struct sockaddr*)&client_addr, &clientlen); if (newsockfd < 0) { perror("Accept failed"); exit(1); } // 设置接收超时时间 struct timeval timeout; timeout.tv_sec = 10; // 设置超时时间为10秒 timeout.tv_usec = 0; if (setsockopt(newsockfd, SOL_SOCKET, SO_RCVTIMEO, (char *)&timeout, sizeof(timeout)) < 0) { perror("Setting timeout failed"); exit(1); } // 接收数据 memset(buffer, 0, sizeof(buffer)); if (recv(newsockfd, buffer, sizeof(buffer), 0) < 0) { perror("Receive failed"); } else { printf("Received data: %s\n", buffer); } // 关闭连接 close(newsockfd); close(sockfd); return 0; } ``` 在上述示例代码中,设置了超时时间为10秒。如果在10秒内没有收到数据,recv()函数会返回一个错误,但连接不会断开。可以根据具体需求调整超时时间的长度。 ### 回答3: 在C编程中,可以使用以下方法设置socket通信的rcv函数接收不到数据时不断开连接: 首先,在创建socket时,可以设置套接字的选项,以便在接收到数据时立即返回,而不是等待数据到达。可以使用如下代码片段: ```c int sock = socket(AF_INET, SOCK_STREAM, 0); if (sock == -1) { // socket创建失败 perror("socket"); exit(1); } int enable = 1; if (setsockopt(sock, SOL_SOCKET, SO_REUSEADDR | SO_KEEPALIVE, &enable, sizeof(int)) == -1) { // 设置套接字选项失败 perror("setsockopt"); exit(1); } ``` 上述代码中,通过调用`setsockopt`函数,将`SO_KEEPALIVE`选项设置为1,表示启用保持活动(keep-alive)功能,即使没有数据到达,也不断开连接。 接下来,在使用`recv`函数接收数据时,可以设置超时和非阻塞模式,使其在没有数据到达时立即返回。示例如下: ```c int flags = fcntl(sock, F_GETFL, 0); fcntl(sock, F_SETFL, flags | O_NONBLOCK); struct timeval timeout; timeout.tv_sec = 1; // 设置超时时间为1秒 timeout.tv_usec = 0; setsockopt(sock, SOL_SOCKET, SO_RCVTIMEO, (char*)&timeout, sizeof(struct timeval)); char buffer[1024]; int numBytes = recv(sock, buffer, sizeof(buffer) - 1, 0); if (numBytes == -1) { // 接收数据失败 if (errno == EAGAIN || errno == EWOULDBLOCK) { // 超时或无可用数据 // 继续其他操作,不断开连接 } else { // 其他错误,断开连接 perror("recv"); close(sock); exit(1); } } else if (numBytes == 0) { // 远程主机关闭连接,断开连接 close(sock); exit(1); } else { // 成功接收到数据,处理数据 buffer[numBytes] = '\0'; // 继续其他操作,不断开连接 } ``` 在上述代码中,首先将套接字设置为非阻塞模式,以便在没有数据到达时立即返回。然后,使用`setsockopt`函数设置接收超时时间为1秒,如果在超时时间内没有可用数据,`recv`函数将返回-1,且`errno`值将为`EAGAIN`或`EWOULDBLOCK`,表示超时或无可用数据。在这种情况下,可以继续其他操作,而不断开连接。 需要注意的是,以上方法适用于基于TCP的socket通信。对于UDP通信,由于UDP是无连接的,不存在断开连接的概念,因此不需要特别处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值