导航:首页 > 编程语言 > 通讯管理机编程实例

通讯管理机编程实例

发布时间:2022-04-03 17:49:51

1. 通讯管理机与远动装置有什么区别

通信管理机也可以称为规约转化器,它的作用是将其它的电力系统规约转换成后台可以识别的规约,然后解析出来,显示在后台上。一般常见的接入规约有CDT规约、modbus规约、103规约。一般来讲市场上接入的规约大多是标准规约,但是还有部分厂家的规约并非标准,有些出入,但是大体上是没问题的。在一个电站中,通信管理机的作用是接入本站的微机保护装置和其他通信设备,如直流屏、电度表、智能仪表、小电流接地选线、电能质量监测装置等设备。而远动机的作用是通过远动规约将站内调度或者集控站要求的数据打包上送到对端,一般是101或者104规约。
远动机是通信管理机的一种,不过对于远动机来讲,在远动上要求的更高,根据实际要求具有主备互相切等功能。
四信智慧电力自主研发生产智能通信管理机 F-DPU100。

2. 通讯管理机的基本功能是什么

通讯管理机主要是用于 工业,电力,石化,煤炭等行业上,将过程层的数据进行统一的采集,并将数据通过通讯管理机内部进行转发。 是过程层与监控层中间的纽带。上海保晋信息科技可以提供免费的技术支持,专业的通讯管理机产品服务,拥有传统的通讯规约库,自定义规约的开发。

3. C语言,编写一个简单的通讯录管理系统

#include <string.h>

#include <stdio.h>

#include<stdlib.h>

int cntAddr=0,i,j;

char in[12];

const char * strFmt=" %d %s %s %s %s ";

typedef struct ADDRESSD {

int ID;

char name[12];

char workPlace[12];

char teleOff[12];

char teleHome[12];

}ADDRESS;

ADDRESS addrTmp[100],adTmp;

int load(ADDRESS adr[]){

FILE *fp;

if((fp=fopen("c:\txl.txt","r"))!=NULL){

cntAddr=0;

while(!feof(fp)){

fscanf(fp,"%d %s %s %s %s ",&(adr[cntAddr].ID),adr[cntAddr].name,adr[cntAddr].workPlace,adr[cntAddr].teleOff,adr[cntAddr].teleHome);

++cntAddr;

}

}

fclose(fp);

return cntAddr;

};

void list(ADDRESS addr[],int length){

for(i=0;i<length;++i)printf(strFmt,addr[i].ID,addr[i].name,addr[i].workPlace,addr[i].teleOff,addr[i].teleHome);

}

void display(ADDRESS addr[]){

for(i=0;i<cntAddr;++i)addrTmp[i]=addr[i];

for(i=0;i<cntAddr-1;++i)for(j=i+1;j<cntAddr;++j)if(addrTmp[i].ID>addrTmp[j].ID){adTmp=addrTmp[i];addrTmp[i]=addrTmp[j];addrTmp[j]=adTmp;}

for(i=0;i<cntAddr;++i)printf(strFmt,addrTmp[i].ID,addrTmp[i].name,addrTmp[i].workPlace,addrTmp[i].teleOff,addrTmp[i].teleHome);

}

void namesort(ADDRESS addr[],int length){

for(i=0;i<length;++i)addrTmp[i]=addr[i];

for(i=0;i<length-1;++i)for(j=i+1;j<length;++j)if(strcmp(addrTmp[i].name,addrTmp[j].name)>0){adTmp=addrTmp[i];addrTmp[i]=addrTmp[j];addrTmp[j]=adTmp;}

for(i=0;i<length;++i)printf(strFmt,addrTmp[i].ID,addrTmp[i].name,addrTmp[i].workPlace,addrTmp[i].teleOff,addrTmp[i].teleHome);

};

void save(ADDRESS adr[],int length){

FILE *fp;

fp=fopen("c:\txl.txt","w");

for(i=0;i<cntAddr;++i)fprintf(fp,"%d %s %s %s %s ",adr[i].ID,adr[i].name,adr[i].workPlace,adr[i].teleOff,adr[i].teleHome);

fclose(fp);

};

void unitssort(ADDRESS addr[],int length){

for(i=0;i<length;++i)addrTmp[i]=addr[i];

for(i=0;i<length-1;++i)for(j=i+1;j<length;++j)if(strcmp(addrTmp[i].workPlace,addrTmp[j].workPlace)>0){adTmp=addrTmp[i];addrTmp[i]=addrTmp[j];addrTmp[j]=adTmp;}

for(i=0;i<length;++i)printf(strFmt,addrTmp[i].ID,addrTmp[i].name,addrTmp[i].workPlace,addrTmp[i].teleOff,addrTmp[i].teleHome);

};

void namesearch(ADDRESS addr[],int length){

printf("请输入姓名: ");

scanf("%s",&in);

for(i=0;i<length;++i)if(strcmp(addr[i].name,in)==0)printf(strFmt,addr[i].ID,addr[i].name,addr[i].workPlace,addr[i].teleOff,addr[i].teleHome);

};

void unitssearch(ADDRESS adr[],int length){

printf("请输入工作单位: ");

scanf("%s",&in);

for(i=0;i<length;++i)if(strcmp(adr[i].workPlace,in)==0)printf(strFmt,adr[i].ID,adr[i].name,adr[i].workPlace,adr[i].teleOff,adr[i].teleHome);

};

void officenumbersearch(ADDRESS adr[],int length){

printf("请输入办公电话: ");

scanf("%s",&in);

for(i=0;i<length;++i)if(strcmp(adr[i].teleOff,in)==0)printf(strFmt,adr[i].ID,adr[i].name,adr[i].workPlace,adr[i].teleOff,adr[i].teleHome);

};

void homenumbersearch(ADDRESS adr[],int length){

printf("请输入家庭电话: ");

scanf("%s",&in);

for(i=0;i<length;++i)if(strcmp(adr[i].teleHome,in)==0)printf(strFmt,adr[i].ID,adr[i].name,adr[i].workPlace,adr[i].teleOff,adr[i].teleHome);

};

int delet(ADDRESS adr[],int length){

printf("要修改第几条记录: ");

scanf("%d",&j);

for(i=j;i<length-1;++i)adr[i]=adr[i+1];

return --length;

};

void rewrite(ADDRESS adr[],int length){

printf("要修改第几条记录: ");

scanf("%d",&j);

printf("请输入ID: ");

scanf("%d",&i);

adr[j].ID=i;

printf("请输入姓名: ");

scanf("%s",in);

strcpy(adr[j].name,in);

printf("请输入工作单位: ");

scanf("%s",in);

strcpy(adr[j].workPlace,in);

printf("请输入办公电话: ");

scanf("%s",in);

strcpy(adr[j].teleOff,in);

printf("请输入家庭电话: ");

scanf("%s",in);

strcpy(adr[j].teleHome,in);

};

int add(ADDRESS adr[],int length){

printf("请输入ID: ");

scanf("%d",&i);

adr[length].ID=i;

printf("请输入姓名: ");

scanf("%s",in);

strcpy(adr[length].name,in);

printf("请输入工作单位: ");

scanf("%s",in);

strcpy(adr[length].workPlace,in);

printf("请输入办公电话: ");

scanf("%s",in);

strcpy(adr[length].teleOff,in);

printf("请输入家庭电话: ");

scanf("%s",in);

strcpy(adr[length].teleHome,in);

return ++cntAddr;

};

void (){

FILE *fp,*fc;

printf("请输入新文件名(路径中的反斜杠用\表示) ");

scanf("%s",&in);

if((fp=fopen("c:\txl.txt","r"))!=NULL){

fc=fopen(in,"w");

while(!feof(fp)){

fscanf(fp,"%d %s %s %s %s ",&(adTmp.ID),adTmp.name,adTmp.workPlace,adTmp.teleOff,adTmp.teleHome);

fprintf(fc,"%d %s %s %s %s ",adTmp.ID,adTmp.name,adTmp.workPlace,adTmp.teleOff,adTmp.teleHome);

}

fclose(fc);

}

fclose(fp);

};

int enter(ADDRESS adr[]){

cntAddr=0;

printf("请按次序输入数据,结束按CTRL+z: ");

while(1){

printf("请输入ID: ");

if(scanf("%d",&i)==EOF)break;

adr[cntAddr].ID=i;

printf("请输入姓名: ");

if(scanf("%s",in)==EOF)break;

strcpy(adr[cntAddr].name,in);

printf("请输入工作单位: ");

if(scanf("%s",in)==EOF)break;

strcpy(adr[cntAddr].workPlace,in);

printf("请输入办公电话: ");

if(scanf("%s",in)==EOF)break;

strcpy(adr[cntAddr].teleOff,in);

printf("请输入家庭电话: ");

if(scanf("%s",in)==EOF)break;

strcpy(adr[cntAddr].teleHome,in);

++cntAddr;

}

return cntAddr;

};

void showpaixu(ADDRESS adr[],int length)

{

int choice;

menu1:

system("cls");

printf(" *************************通讯录信息管理系统************************* ");

printf(" 1. 全部显示通讯录信息 ");

printf(" 2. 按序号显示通讯录信息 ");

printf(" 3. 按姓名排序 ");

printf(" 4. 按工作单位排序 ");

printf(" 0. 返回上一级菜单 ");

printf(" ******************************************************************** ");

printf(" 请选择(0~4) ");

scanf("%d",&choice);

switch(choice)

{

case 1:

list(adr,length);

printf(" 请按任意键返回... ");

system("pause");

break; /*显示全部记录*/

case 2:

display(adr);

printf(" 请按任意键返回... ");

system("pause");break; /*按序号显示记录*/

case 3:

namesort(adr,length);

printf(" 请按任意键返回... ");

system("pause");

break; /*按姓名排序*/

case 4:

unitssort(adr,length);

printf(" 请按任意键返回... ");

system("pause");

break; /*按工作单位排序*/

case 0: return;

}

goto menu1;

}

/*通讯录信息查找功能*/

void chazhao(ADDRESS adr[],int length)

{

int choice;

menu2:

system("cls");

printf(" *************************通讯录信息管理系统************************* ");

printf(" 1. 通过姓名查找 ");

printf(" 2. 通过工作单位查找 ");

printf(" 3. 通过办公电话查找 ");

printf(" 4. 通过家庭电话查找 ");

printf(" 0. 返回上一级菜单 ");

printf(" ******************************************************************** ");

printf(" 请选择(0~4) ");

scanf("%d",&choice);

switch(choice)

{

case 1:

namesearch(adr,length);

printf(" 请按任意键返回... ");

system("pause");

break; /*按姓名查找记录*/

case 2:

unitssearch(adr,length);

printf(" 请按任意键返回... ");

system("pause");

break; /*按工作单位查找记录*/

case 3:

officenumbersearch(adr,length);

printf(" 请按任意键返回... ");

system("pause");

break; /*按办公电话查找记录*/

case 4:

homenumbersearch(adr,length);

printf(" 请按任意键返回... ");

system("pause");

break; /*按住宅电话查找记录*/

case 0: return;

}

goto menu2;

}

/*通讯录信息变更功能*/

void biangeng(ADDRESS adr[],int length)

{

int choice;

menu3:

system("cls");

printf(" *************************通讯录信息管理系统************************* ");

printf(" 1. 删除记录 ");

printf(" 2. 修改记录 ");

printf(" 3. 添加记录 ");

printf(" 0. 返回上一级菜单 ");

printf(" ******************************************************************** ");

printf(" 请选择(0~3) ");

scanf("%d",&choice);

switch(choice)

{

case 1:

length=delet(adr,length);

save(adr,length);

printf(" 请按任意键返回... ");

getchar();

break; /*删除记录*/

case 2:

rewrite(adr,length);

save(adr,length);

printf(" 请按任意键返回... ");

getchar();

break; /*修改记录*/

case 3:

length=add(adr,length);

save(adr,length);

printf(" 请按任意键返回... ");

getchar();

break; /*插入记录*/

case 0: return;

}

goto menu3;

}

int wenjian(ADDRESS adr[],int length)

{

int choice;

menu4:

system("cls");

printf(" *************************通讯录信息管理系统************************* ");

printf(" 1. 导入文件到通讯录 ");

printf(" 2. 把当前文件复制到新文件上 ");

printf(" 0. 返回上一级菜单 ");

printf(" ******************************************************************** ");

printf(" 请选择(0~2) ");

scanf("%d",&choice);

switch(choice)

{

case 1: length=load(adr);

printf("您已经成功的导入文件到通讯录! ");

printf(" 请按任意键返回... ");

system("pause");break;

case 2: ();

printf("复制成功! ");

printf(" 请按任意键返回... ");

system("pause");break;

case 0: return length;

}

goto menu4;

}

/*关于*/

void about()

{

system("color 87");

system("cls");

printf(" 《通讯录信息管理系统》 ");

printf(" ***************************************** ");

printf(" 版权所有(C) 2009-2010 DIY软件 ");

printf(" 制作人:西北民族大学计算机科学与信息09级计算机3班 王元波 ");

printf(" ***************************************** ");

printf(" 请按任意键返回主菜单...");

system("pause");

}

/******主函数开始*******/

void main()

{

int choice;

int length; /*保存记录长度*/

ADDRESS adr[100] ; /*定义结构体数组*/

menu:

system("color f9");

system("cls");

printf(" *************************通讯录信息管理系统************************* ");

printf(" 请选择以下通讯录管理功能: ");

printf(" 1. 通讯录信息输入 ");

printf(" 2. 通讯录信息浏览及排序 ");

printf(" 3. 通讯录信息查询 ");

printf(" 4. 通讯录信息更改 ");

printf(" 5. 通讯录及文件操作 ");

printf(" 6. 关于通讯录信息管理系统 ");

printf(" 0. 退出通讯录管理系统 ");

printf(" ******************************************************************** ");

printf(" 请选择(0~6) ");

scanf("%d",&choice);

switch(choice)

{

case 1: length=enter(adr);

save(adr,length);

printf(" 请按任意键返回... ");

system("pause");break;/*输入记录*/

case 2: showpaixu(adr,length);break;

case 3: chazhao(adr,length);break;

case 4: biangeng(adr,length);break;

case 5: length=wenjian(adr,length);break;

case 6: about();break;/*关于*/

case 0: return; /*如返回值为则程序结束*/

}

goto menu;

}

拓展资料

C语言是一门通用计算机编程语言,应用广泛。C语言的设计目标是提供一种能以简易的方式编译、处理低级存储器、产生少量的机器码以及不需要任何运行环境支持便能运行的编程语言。

尽管C语言提供了许多低级处理的功能,但仍然保持着良好跨平台的特性,以一个标准规格写出的C语言程序可在许多电脑平台上进行编译,甚至包含一些嵌入式处理器(单片机或称MCU)以及超级电脑等作业平台。



4. 如何将电脑和通讯管理机连接

下载个腾讯手机精灵就好了亲

5. 如何用c语言编程一个通讯系统的程序

这个比较复杂啊,不是这个上面能说的清楚的

我具体讲下面几点吧:
1 程序分模块开发,比如录入模块,查询模块
2 这个程序需要用到数据库,当然你也可以使用一个文本文件按照格式来保存,看自己需要了
3 数据结构呢,比如说 一条信息就是一个结构 这个结构里包含 姓名 号码等等。

6. 通讯管理机

什么是通讯管理机

用于远动工作站时,它完成全站的微机保护、自动装置、测控等智能电子装置的数据集中管理和数据筛选,与调度或集控中心通信交互;用于通信规约转换装置时,它负责把不同通信接口(串口、CAN、以太网等)、不同通信规约的智能装置接入,这些不同方式接入的设备数据经规约转换,成为统一格式的数据,到达站控层以太网总线,从而为厂站主计算机系统、远动工作站装置的信息交互提供了统一的数据接口。通信管理装置适用于规模较大、要求较高的厂站综合自动化系统,也可同厂站自动化装置配合,用于厂站无人值班改造。

主要特点

通讯管理机为多CPU系统,各CPU通过装置内部以太网总线协同工作,软件上分为端口收发模块、网络报文管理模块、规约处理模块、数据库处理模块、定时任务调度模块、系统内核模块、信息逻辑综合模块等。其主要特点有以下几点:

1、端口收发模块:该模块实现了RS232、RS485、CAN总线等接口的物理收发控制及缓冲管理。利用专用CPU实现端口驱动,减轻了主CPU模块的中断开销等负荷。
2、网络报文管理模块:该模块提供了一组面向对象的网络接口。对不同连接要求的网络数据对象进行连接维护、状态维护、收发数据缓冲、双网接收数据自动提取及数据的快速发送和重发等功能。通过该模块可以方便地实现站控层上与间隔层设备的网络化连接,以及与调度、集控站等的网络高速传输。
3、规约处理模块:规约处理模块通过串口、CAN或以太网获取数据进行处理,将处理结果用统一格式填入实时数据库,或通过报文转接给其它接口。系统根据需要,调用统一的数据处理模块,根据不同的上行规约要求,将数据转发往调度、集控站或其它装置。
4、数据库处理模块:该模块包括系统总实时数据库的维护,送往不同转发对象的数据引用表的创建,运行时转发对象数据的筛选、缓冲等。本装置的实时数据库提供有SOE、遥信变位、变化遥测、保护事件、装置自诊断等多种信息的缓冲。
5、定时任务调度模块及系统内核模块:该模块提供了系统事件管理、按时执行设定的任务等功能。具有看门狗功能,可监视各应用进程的实时运行状况。
6、信息逻辑综合模块:该模块实现了对实时数据库中的数据进行计算、转换等综合功能。根据装置维护工具软件里的相应设置,该模块可以为用户提供实时数据的逻辑再加工能力,从而改变实时数据的输出表示方式,或产生新的告警信息等。该功能模块可在今后的应用中,随用户的需求,而不断发展变化,但原则上,必须强调通过维护工具软件进行简单、直观地设置操作,避免内部数据的混乱。目前维护工具软件支持:遥信的与或运算、遥测的越限告警、以及保护事件报文转遥信等功能。

7. 通信管理机的硬件规格

系统
处理器:AMD LX800处理器(板载)
芯片组:AMD Geode, CS5536
前端总线:333MHz
内存:板载 256MB DDR内存
BIOS:Award 2Mbit Flash BIOS
看门狗功能:可编程设定 1~255 sec.
操作系统:Win XP Embedded, Linux 2.6.11 and 2.6.18
显示
显示接口:VGA (DB15 接口)
以太网
控制器:2 个10/100Mbps自适应网口,带LNK和ACT状态指示灯
隔离措施:支持2.0KV电磁隔离
接口类型:RJ45接口
PXE功能:支持
存储
系统存储器:2G工业级DOM 带擦写优化功能
SATA:1个SATA接口
SSD:1个CF卡插座(支持UDMA)
输入/输出
串口:4个RS-232/485 (DB9 接口)串口,带数字隔离和突波保护
USB:2个USB2.0
键盘/鼠标:提供PS/2键盘鼠标线插针
GPIO:9-bit 数字输入/输出
机箱和环境
机箱尺寸:280.2 mm x 69.2 mm x 137.25 mm(W x H x D,壁挂式安装)
电源需求:9-36VDC@2A
功 耗:50W
工作温度:-20~60 ℃
存储温度:-20~80 ℃
相对湿度:0 to 90% @ 40, ℃无凝霜
认证:CE、FCC class A
配件列表
1. HDC-AR0402 系统
2. 串口对连线
3. 壁挂式安装附件
4. HDC Server软件安装光盘
订购信息
标准
HDC-AR0402:无风扇嵌入式工业通讯隔离网关,4串/2网
可选
1、15/17/19英寸工业级触摸屏

8. 什么是通讯管理机

通讯管理机也称作DPU,其具有多个下行通讯接口及一个或者多个上行网络接口,相当于前置机即监控计算机,用于将一个变电所内所有的智能监控/保护装置的通讯数据整理汇总后,实时上送上级主站系统(监控中心后台机和DCS),完成遥信、遥测功能。

通讯管理机是变配电自动化系统的重要组成部分,完成变电站微机保护、自动装置、测控等智能电子装置与变电站主计算机系统、电网自动化系统之间的信息交互。实现各远方电站信息向上位主机的交换及网络转换,从而构成全分散式的RTU通讯系统。

(8)通讯管理机编程实例扩展阅读

通讯管理机的应用:

通讯管理机广泛应用于钢铁冶金行业能源计量、工程机械车联网、水文水利数据无人值守自动站、电力LCU现地单元串口联网服务器等,其采用ARM9-based RISC高效能处理器,使用了精简内核LINUX嵌入式操作系统,真正实现了工业现场的“3C”(现场控制,现场计算,现场通讯)的要求。

它既可以单独使用直接通过自带以太网口向上传输数据,也可以通过无线DTU通信设备接口即时发送数据,还可以和MicroSCADA可编程微控站组合使用形成现地控制单元分层分布应用。

9. 目前用通讯管理机做485通讯,下挂多台串口设备。问题:如何判断哪台仪器断开了,有通讯故障

上位机与3台同种型号的设备通过485转232进行通讯,轮询,正常;当其中一个...学生在回答问题的时候,哪怕他站起来,没有说话,呵呵,老师肯定也要等他...

阅读全文

与通讯管理机编程实例相关的资料

热点内容
优信二手车解压后过户 浏览:61
Windows常用c编译器 浏览:778
关于改善国家网络安全的行政命令 浏览:833
安卓如何下载网易荒野pc服 浏览:654
javainetaddress 浏览:104
苹果4s固件下载完了怎么解压 浏览:1002
命令zpa 浏览:285
python编译器小程序 浏览:944
在app上看视频怎么光线调暗 浏览:540
可以中文解压的解压软件 浏览:592
安卓卸载组件应用怎么安装 浏览:913
使用面向对象编程的方式 浏览:339
程序员项目经理的年终总结范文 浏览:929
内衣的加密设计用来干嘛的 浏览:432
淮安数据加密 浏览:292
魔高一丈指标源码 浏览:982
松下php研究所 浏览:168
c回调java 浏览:399
梦幻端游长安地图互通源码 浏览:745
电脑本地文件如何上传服务器 浏览:313