当前位置:文档之家› 通信协议模板(ASCII)

通信协议模板(ASCII)

精心整理

组态王与单片机协议

1.通讯口设置:

通讯方式:RS-232,RS-485,RS-422均可。

波特率:由单片机决定(2400,4800,9600and19200bps)。

讯参数一致

字头:1字节1个ASCII码,40H

设备地址:1字节2个ASCII码,0—255(即0---0x0ffH)

标志:1字节2个ASCII码,bit0~bit7,

bit0=0:读,bit0=1:写。

bit1=0:不打包。

bit3bit2=00,数据类型为字节。

bit3bit2=01,数据类型为字。

bit3bit2=1x,数据类型为浮点数。

数据地址:2字节4个ASCII码,0x0000~0xffff

数据字节数:1字节2个ASCII码,1—100,实际读写的数据的字节数。数据…:为实际的数据转换为ASCII码,个数为字节数乘2。

异或:异或从设备地址到异或字节前,异或值转换成2个ASCII码CR:0x0d。

通讯尝试恢复命令(COMERROR),请求地址为0的一个BYTE数据

4字节浮点数=第一字节高4位ASCII码+第一字节低4位ASCII码

+第二字节高4位ASCII码+第二字节低4位ASCII码

+第三字节高4位ASCII码+第三字节低4位ASCII码

+第四字节高4位ASCII码+第四字节低4位ASCII码

第1字节高4位第2字节高4位第3字节高4位第4字节高4位

★四字节浮点数格式:

(1)第一字节

(2)第二字节

(3)第三字节

(4)第四字节

注:数符=0——正,数符=1——负 阶符=0——正,阶符=1——负

D7D6D5~D0 ★浮点数可表示范围:-1×

232~1×232 ★ 数符:1位 阶符:1位 阶码:6位

第1字节低4位第2字节低4位第3字节低4位第4字节低4位

第1字节高4位第2字节高4位第3字节高4位第4字节高4位

3、注:

仪表内部数据为十六进制表示的十进制数。如:实时测量值为500,则用十六进制表示为1F4H 。仪表通讯传输是将上述十六进制数据转化为标准ASCII 码(即一字节的16进制数转化为2个ASCII 码──高4位ASCII 码+低4位ASCII 码)。

如:上述数据1F4H (16进制),传输时,转化为ASCII 码则为30H 、31H 、46H 、34H 。

6.此浮点数格式的转换:

1)ASCII 码到浮点数:

/*

in:char*c

要转化的ASII码字符,应为4个字符。

Return:转换后的浮点数。

*/

floatC4toD(char*c)

{

BYTEHd[30],Jiema[30];

floatDTc[30];

floatDecimal=0;

memset(Hd,0,sizeof(Hd));

memset(Jiema,0,sizeof(Jiema));

memset(DTc,0,sizeof(DTc));

else

else

else

Hd[4]=((c[4]-0x57)&0x0f);

else

Hd[4]=((c[4]-0x30)&0x0f);

DTc[1]=(float)((((float)(Hd[4]*16.0)+(float)Hd[5])+DTc[2])/256.0);

if((c[3]>0x40)&&(c[3]<0x47))

Hd[3]=((c[3]-0x37)&0x0f);

elseif((c[3]>0x60)&&(c[3]<0x67))

Hd[3]=((c[3]-0x57)&0x0f);

else

Hd[3]=((c[3]-0x30)&0x0f);

if((c[2]>0x40)&&(c[2]<0x47))

Hd[2]=((c[2]-0x37)&0x0f);

elseif((c[2]>0x60)&&(c[2]<0x67))

Hd[2]=((c[2]-0x57)&0x0f);

else

Hd[2]=((c[2]-0x30)&0x0f);

Decimal=(float)(((float)(Hd[2]*16)+(float)(Hd[3])+DTc[1])/256.0);

if((c[1]>0x40)&&(c[1]<0x47))

Jiema[1]=((c[1]-0x37)&0x0f);

elseif((c[1]>0x60)&&(c[1]<0x67))

Jiema[1]=((c[1]-0x57)&0x0f);

else

Jiema[1]=((c[1]-0x30)&0x0f);

else

else

}

2

/*

Floatd:

Return:

*/

voidD4toC(char*c,floatd)

{

BYTEi=0,Jiema=0;

charinbyte1[30];

BOOLShuFu=FALSE,JieFu=FALSE;

intinbyte2=0,inbyte3=0,inbyte4=0;

charafterbyte2[30],afterbyte3[30],afterbyte4[30];

floatF_afterbyte2=0,F_afterbyte3=0,F_afterbyte4=0;

memset(inbyte1,0x30,sizeof(inbyte1));

memset(afterbyte2,0x30,sizeof(afterbyte2));

memset(afterbyte3,0x30,sizeof(afterbyte3));

memset(afterbyte4,0x30,sizeof(afterbyte4));

inbyte1[10]=0x0;

afterbyte2[10]=0x0;

afterbyte3[10]=0x0;

afterbyte4[10]=0x0;

if(d==0)

{

for(intj=0;j<8;j++)

c[j]=0x30;

return;

}

{

}

{

}

{

}

{

}

else

{

F_afterbyte2=(d*256)-(int)(d*256);

inbyte3=(int)(F_afterbyte2*256);

F_afterbyte3=(F_afterbyte2*256)-(int)(F_afterbyte2*256);

inbyte4=(int)(F_afterbyte3*256);

F_afterbyte4=(F_afterbyte3*256)-(int)(F_afterbyte3*256);

itoa(inbyte2,afterbyte2,16);

itoa(inbyte3,afterbyte3,16);

itoa(inbyte4,afterbyte4,16);

if(inbyte2==0)

{

c[2]=0x30;

c[3]=0x30;

}

elseif(inbyte2<16)

{

c[2]=0x30;

c[3]=afterbyte2[0];

}

else

{

c[2]=afterbyte2[0];

c[3]=afterbyte2[1];

}

}

else

{

c[6]=afterbyte4[0];

c[7]=afterbyte4[1];

}

}

if(JieFu)

{

if(i>0x3f)

i=0x3f;

}

elseif(i>0x32)

i=32;

if(ShuFu)

i=i|0x80;

if(JieFu)

i=i|0x40;

itoa(i,inbyte1,16);

if(inbyte1==0)

{

c[0]=0x30;

c[1]=0x30;

}

{

}

else

{

}

{

}

}

单片机串口通信协议程序

#include #include #define R55 101 #define RAA 202 #define RLEN 203 #define RDATA 104 #define RCH 105 //#define unsigned char gRecState=R55; unsigned char gRecLen; unsigned char gRecCount; unsigned char RecBuf[30]; unsigned char gValue; void isr_UART(void) interrupt 4 using 1 { unsigned char ch; unsigned char i; unsigned char temp; if (RI==1) { ch=SBUF; switch(gRecState) { case R55: // wait 0x55 if (ch==0x55) gRecState=RAA; break;

case RAA: if (ch==0xaa) gRecState=RLEN; else if (ch==0x55) gRecState=RAA; else gRecState=R55; break; case RLEN: gRecLen=ch; gRecCount=0; gRecState=RDATA; break; case RDATA: RecBuf[gRecCount]=ch; gRecCount++; if (gRecCount>=gRecLen) { gRecState=RCH; } break; case RCH: temp=0; for(i=0;i

ascii码对照表完整版doc

**ASCII 码对照表完整版 信息在计算机上是用二进制表示的,这种表示法让人理解就很困难。因此计算机上都配有输入和输出设备,这些设备的主要目的就是,以一种人类可阅读的形式将信息在这些设备上显示出来供人阅读理解。为保证人类和设备,设备和计算机之间能进行正确的信息交换,人们编制的统一的信息交换代码,这就是ASCII码表,它的全称是“美国信息交换标准代码”。

ASCII 在Web开发时,如下的ASCII码只要加上&#和;就可以变成Web可以辨认的字符了在处理特殊字符的时候特别有用,如:' 单引号在数据库查询的时候是杀手,但是如果转换成'(注意:转换后的机构有:&# +字符的ASCII码值+; 三个部分组成)再来存数据库,就没有什么影响了。其他的字符与ASCII码的对照如下表 ASCII表

键盘常用ASCII码ESC键 VK_ESCAPE (27) 回车键: VK_RETURN (13) TAB键: VK_TAB (9) Caps Lock键: VK_CAPITAL (20) Shift键: VK_SHIFT ($10)

Ctrl键: VK_CONTROL (17) Alt键: VK_MENU (18) 空格键: VK_SPACE ($20/32) 退格键: VK_BACK (8) 左徽标键: VK_LWIN (91) 右徽标键: VK_LWIN (92) 鼠标右键快捷键:VK_APPS (93) Insert键: VK_INSERT (45) Home键: VK_HOME (36) Page Up: VK_PRIOR (33) PageDown: VK_NEXT (34) End键: VK_END (35) Delete键: VK_DELETE (46) 方向键(←): VK_LEFT (37) 方向键(↑): VK_UP (38) 方向键(→): VK_RIGHT (39) 方向键(↓): VK_DOWN (40) F1键: VK_F1 (112) F2键: VK_F2 (113) F3键: VK_F3 (114) F4键: VK_F4 (115) F5键: VK_F5 (116) F6键: VK_F6 (117) F7键: VK_F7 (118) F8键: VK_F8 (119) F9键: VK_F9 (120) F10键: VK_F10 (121) F11键: VK_F11 (122) F12键: VK_F12 (123) Num Lock键: VK_NUMLOCK (144) 小键盘0: VK_NUMPAD0 (96) 小键盘1: VK_NUMPAD0 (97) 小键盘2: VK_NUMPAD0 (98) 小键盘3: VK_NUMPAD0 (99) 小键盘4: VK_NUMPAD0 (100) 小键盘5: VK_NUMPAD0 (101) 小键盘6: VK_NUMPAD0 (102) 小键盘7: VK_NUMPAD0 (103) 小键盘8: VK_NUMPAD0 (104) 小键盘9: VK_NUMPAD0 (105) 小键盘.: VK_DECIMAL (110)

通讯协议标准

编号: 密级:内部 页数:__________基于RS485接口的DGL通信协议(修改) 编写:____________________ 校对:____________________ 审核:____________________ 批准:____________________ 北京华美特科贸有限公司 二○○二年十二月六日

1.前言 在常见的数字式磁致伸缩液位计中,多采用RS485通信方式。但RS485标准仅对物理层接口进行了明确定义,并没有制定通信协议标准。因此,在RS485的基础上,派生出很多不同的协议,不同公司均可根据自身需要设计符合实际情况的通信协议。并且,RS485允许单总线多机通信,如果通信协议设计不好,就会造成相互干扰和总线闭锁等现象。如果在一条总线上挂接不同类型的产品,由于协议不一样,很容易造成误触发,造成总线阻塞,使得不同产品对总线的兼容性很差。 随着RS485的发展,Modicon公司提出的MODBUS协议逐步得到广泛认可,已在工业领域得到广泛应用。而MODBUS的协议规范比较烦琐,并且每字节数据仅用低4位(范围:0~15),在信息量相同时,对总线占用时间较长。 DGL协议是根据以上问题提出的一种通信协议。在制定该协议时已充分考虑以下几点要求: a.兼容于MODBUS 。也就是说,符合该协议的从机均可挂接到同一总线上。 b.要适应大数据量的通信。如:满足产品在线程序更新的需要(未来功能)。 c.数据传输需稳定可靠。对不确定因素应加入必要的冗错措施。 d.降低总线的占用率,保证数据传输的通畅。 2.协议描述 为了兼容其它协议,现做以下定义: 通信数据均用1字节的16进制数表示。从机的地址范围为:0x80~0xFD,即:MSB=1; 命令和数据的数值范围均应控制在0~0x7F之间。即:MSB=0,以区别地址和其它数据。 液位计的编码地址为:0x82~0x9F。其初始地址(出厂默认值)为:0x81。 罐旁表的编织地址为:0xA2~0xBF。其初始地址(出厂默认值)为:0xA1。 其它地址用于连接其它类型的设备,也可用于液位计、罐区表地址不够时的扩充。 液位计的命令范围为:0x01~0x2F,共47条,将分别用于参数设定、实时测量、诊断测试、在线编程等。 通信的基本参数为:4800波特率,1个起始位,1个结束位。字节校验为奇校验。 本协议的数据包是参照MODBUS RTU 通信格式编写,并对其进行了部分修改,以提高数据传输的速度。另外,还部分参照了HART协议。其具体格式如下: 表中,数据的最大字节数为16个。也就是说,整个数据包最长为20个字节。 “校验和”是其前面所有数据异或得到的数值,然后将该数值MSB位清零,使其满足0~7F 的要求。在验证接收数据包的“校验和”是否正确时,可将所有接收数据(包括“校验和”)进行异或操作,得到的数据应=0x80。这是因为,只有“地址”的MSB=1,所以异或结果的MSB也必然等于1。 本协议不支持MODBUS中所规定的广播模式。 3.时序安排 在上电后,液位计将先延迟10秒,等待电源稳定。然后,用5秒的时间进行自检和测试数据。

51串口通信协议(新型篇)

51串口通信协议(新型篇) C51编程:这是网友牛毅编的一个C51串口通讯程序! //PC读MCU指令结构:(中断方式,ASCII码表示) //帧:帧头标志|帧类型|器件地址|启始地址|长度n|效验和|帧尾标志 //值: 'n' 'y'| 'r' | 0x01 | x | x | x |0x13 0x10 //字节数: 2 | 1 | 1 | 1 | 1 | 1 | 2 //求和: ///////////////////////////////////////////////////////////////////// //公司名称:*** //模块名:protocol.c //创建者:牛毅 //修改者: //功能描述:中断方式:本程序为mcu的串口通讯提供(贞结构)函数接口,包括具体协议部分 //其他说明:只提供对A T89c51具体硬件的可靠访问接口 //版本:1.0 //信息:QQ 75011221 ///////////////////////////////////////////////////////////////////// #include #include //预定义 //帧 #define F_ST1 0x6e //帧头标志n #define F_ST2 0x79 //帧头标志y #define F_R 0x72 //帧类型读r #define F_W 0x77 //帧类型写w #define F_D 0x64 //帧类型数据帧d #define F_B 0x62 //帧类型写回应帧b #define F_C 0x63 //帧类型重发命令帧c #define F_Q 0x71 //帧类型放弃帧q #define F_ADDR 0x31 //器件地址0-9 #define F_END 0x7a //帧尾标志z #define F_SPACE 0x30 //空标志0 #define F_ERR1 0x31 //错误标志1,flagerr 1 #define F_ERR2 0x32 //错误标志2 2 //常数 #define S_MAXBUF 16 //接收/发送数据的最大缓存量 #define FIELD_MAXBUF 48 //最小场缓存,可以大于48字节,因为协议是以20字节为

电话视频通信协议(协议模板)

A contract is generally a legal act of both parties and can only be established if the parties reach an agreement. Protect the legal rights of both parties after signing. (协议范本) 甲方:___________________ 乙方:___________________ 日期:___________________ 电话视频通信协议(协议模板)

电话视频通信协议(协议模板)说明:合同一般是双方的法律行为,只有双方当事人达成协议才能成立。签订合同后依法保护双方的合法权益,避免很多不必要的争议。可用作电子存档或实体印刷,使用时请详细阅读条款。 甲方:_________乙方:_________ 为了满足宽带网用户使用高科技视频通信的需要,促进中国互联网增值业务的发展,_________公司推出具有国际领先水平的可视电话视频通信业务。为维护甲、乙双方的合法权益,双方就甲方使用乙方提供的视频通信服务一事,根据国内现时的相关法律、行规规定达成如下协议,以供共同遵照执行: 1.为了保证乙方对甲方的服务质量,甲方必须向乙方提供包括姓名(单位用户则为单位全称)、出生年月、住址(包括邮政编码)、身份证号、工作单位、联系电话等在内的客户资料。若甲方提供的客户资料虚假或不详细,乙方保留向甲方要求进一步提供身份证复印件(单位用户则为法人营业执照副本复印件)的权利,必要时有权停止向甲方提供服务,并依法追究甲方的法律责任。乙方保证对甲方提供的身份资料只作提供本协议项下的服务之用,未经甲方授权不向任何第三方公开,但法律另有规定的除外。

各种通信协议

分层及通信协议 协议软件是计算机通信网中各部分之间所必须遵守的规则的集合,它定义了通信各部分交换信息时的顺序、格式和词汇。协议软件是计算机通信网软件中最重要的部分。网络的体系结构往往都是和协议对应的,而且,网络管理软件、交换与路由软件以及应用软件等都要通过协议软件才能发生作用。 一、通信协议 1、什么是通信协议 通信协议(简称协议Protoco l),是指相互通信的双方(或多方)对如何进行信息交换所一致同意的一整套规则。一个网络有一系列的协议,每一个协议都规定了一个特定任务的完成。协议的作用是完成计算机之间有序的信息交换。 通信网络是由处在不同位置上的各节点用通信链路连接而组成的一个群体。通信网必须在节点之间以及不同节点上的用户之间提供有效的通信,即提供有效的接入通路。在计算机通信网中,将这种接入通路称为连接(connection)。建立一次连接必需要遵守的一些规则,这些规则也就是通信网设计时所要考虑的主要问题。 (l)为了能在两个硬件设备之间建立起连接,应保证在源、宿点之间存在物理的传输媒介,在该通路的各条链路上要执行某种协议。 如果传输线路使用电话线,则要通过调制解调器将信号从数字转换成模拟的,并在接收端进行反变换。 如果用的是数字传输线路,则在数据处理设备和通信设备之间,必须有一个数字适配器,以便将数字信号的格式转换成两种设备各自所期望的形式。 为了在两个端设备之间互换数据,需要协调和同步,调制解调器和数字适配器必须执行它们自己的协议。 无论是模拟的还是数字的通信设备,调制解调器和数字适配器的状态必须由接到节点上的设备来控制,这里必定有一个物理的或电气的接口来执行这种功能,执行某种适当的协议来达到这一控制目的。 (2)在计算机通信网中,许多信息源都是突发性的(bursty),问题是要利用信息的这种突发性质来降低消耗在线路上的费用,由此开发了许多共享通信资源的技术。所谓共享,是指允许多个用户使用同一通信资源,这就产生了多用户的接入问题。多路接入

ASCII码对照表 -

ASCII码对照表 ASCII码对照表 ASCII, American Standard Code for Information Interchange 念起来像是 "阿斯key",定义从 0 到 127 的一百二十八个数字所代表的英文字母或一样的结果与 意义。由于只使用7个位元(bit)就可以表示从0到127的数字,大部分的电脑都使 用8个位元来存取字元集(character set),所以从128到255之间的数字可以用来代 表另一组一百二十八个符号,称为 extended ASCII。 ASCII码键盘ASCII 码键盘ASCII码键盘ASCII 码键盘 27ESC32SPACE33!34" 35#36$37%38& 39'40(41)42* 43+44'45-46. 47/480491502 513524535546 55756857958: 59;60<61=62> 63?64@65A66B 67C68D69E70F 71G72H73I74J 75K76L77M78N 79O80P81Q82R 83S84T85U86V 87W88X89Y90Z 91[92\93]94^ 95_96`97a98b 99c100d101e102f 103g104h105i106j 107k108l109m110n 111o112p113q114r 115s116t117u118v 119w120x121y122z 123{124|125}126~ 目前计算机中用得最广泛的字符集及其编码,是由美国国家标准局(ANSI)制定的ASCII码 (American Standard Code for Information Interchange,美国标准信息交换码),它已被国际标准化组织(ISO)定为国际标准,称为ISO 646标准。适用于所有拉丁文字字母,ASCII码有7位码和8位码两种形式。 因为1位二进制数可以表示(21=)2种状态:0、1;而2位二进制数可以表示(22)=4种状态:00、01、10、11;依次类推,7位二进制数可以表示(27=)128种状态,每种状态都唯一地编为一个7位的二进制码,对应一个字符(或控制码),这些码可以排列成一个十进制序号0~127。所以,7位ASCII码是用七位二进制数进行编码的,可以表示128个字符。

通信服务合同模板(标准版)

编号:GR-WR-19539 通信服务合同模板(标准 版) After negotiation and consultation, both parties jointly recognize and abide by their responsibilities and obligations, and elaborate the agreed commitment results within the specified time. 甲方:____________________ 乙方:____________________ 签订时间:____________________ 本文档下载后可任意修改

通信服务合同模板(标准版) 备注:本合同书适用于约定双方经过谈判、协商而共同承认、共同遵守的责任与义务,同时阐 述确定的时间内达成约定的承诺结果。文档可直接下载或修改,使用时请详细阅读内容。 通信服务协议 为保护乙方的通信权利,维护甲方合法的通信经营权,双方本着自愿、平等的原则,达成协议如下: 一、协议双方的权利与义务 (一)乙方的权利与义务 1.依法使用电信的自由和通信秘密受法律保护。 2.有权自主选择使用甲方依法开办的固定电话通信业务。 3.有对甲方执行的收费项目和资费标准的知晓权。 4.应当在约定的时限内(全月)缴纳电信费用。 5.登记办理固定电话业务须提供真实、无误的乙方资料,并对乙方资料的准确性、真实性,承担法律责任。 6.乙方名称、结算方式发生变更时,应在一周内办理变更确认手续,因未按时办理变更手续造成的损失由乙方自行承担。

7.使用的用户终端设备必须符合国家规定的标准并取得进网许可证。 8.使用电信网络传输的信息内容及其后果由乙方负责。 9.配合甲方实施的固定电话服务变更。 (二)甲方的权利和义务 1.按照规定的标准收取各项费用。 2.按照国家规定的服务标准向乙方提供固定电话服务。并在营业场所公布收费项目和资费标准,并为乙方缴费提供方便。 3.甲方免费向乙方提供火警(119)、匪警(110)、医疗急救(120)、交通事故 报警(122)等紧急电话的接入服务。 4.甲方免费向乙方提供长途话费详细清单查询,并为乙方保留话费信息半年。 5.根据国家关于电话交换设备技术规范书、国家计委和信息产业部对电信计费的有关规定,固定网本地电话不提供详细话单。 6.乙方对缴纳的电信费用有异议的,甲方有义务采取必

HLP SV Modbus标准通讯协议格式

HLP_SV Modbus RTU 标准通讯协议格式 通信资料格式 Address Function Data CRC check 8 bits 8 bits N×8bits 16bits 1)Address通讯地址:1-247 2)Function:命令码8-bit命令 01 读线圈状态 上位机发送数据格式: ADDRESS 01 ADDRH ADDRL NUMH NUML CRC 注: ADDR: 00000 --- FFFF(ADDR=线圈地址-1);NUM: 0010-----0040 (NUM为要读线圈状态值的二进制数位数) 正确时变频器返回数据格式: ADDRESS 01 BYTECOUNT DATA1 DATA2 DATA3 DATAN CRC 注: BYTECOUNT:读取的字数 错误时变频器返回数据格式: ADDRESS 0X81 Errornum CRC 注: Errornum为错误类型代码 如:要检测变频器的输出频率 应发送数据:01 01 00 30 00 10 3D C9(16进制) 变频器返回数据:01 01 02 00 20 B8 24(16进制) 发送数据:0030hex(线圈地址49) 返回的数据位为“0020”(16进制),高位与低位互换,为2000。即输出频率为 303(Max Ref)的50%。关于2000对应50%,具体见图1。

03读保持寄存器 上位机发送数据格式: ADDRESS 03 ADDRH ADDRL NUMH NUML CRC 注:ADDR: 0 --- 0XFFFF;NUM: 0010-----0040 (NUM为要读取数据的字数) ADDR=Parameter Numbe r×10-1 正确时变频器返回数据格式: ADDRESS 03 BYTECOUNT DATA1 DATA 2 DATA 3 DATAN CRC 注: BYTECOUNT:读取的字节数 错误时变频器返回数据格式: ADDRESS 0X83 Errornum CRC 如:要读变频器参数303的设定值 应发送数据:01 03 0B D5 00 02 95 BC (16进制) Parameter 303(3029)=0BD5HEX 变频器返回数据:“:”01 03 04 00 00 EA 60 B5 7B 返回的数据位为“00 00 EA 60”(16进制)转换为10进制数为60000, 表示303设置值为60.000 ※当参数值为双字时,NUM的值必须等于2。否则无法读取或读取错误。 05 写单个线圈状态 上位机发送数据格式: ADDRESS 05ADDRH ADDRL DATAH DA TAL CRC 注:ADDR: 0 ---- 0XFFFF(ADDR=线圈地址-1);DATA=0000HEX(OFF) OR FF00(ON) HEX 正确时变频器返回数据格式: ADDRESS 05 DATAH DATAL BYTECOUNT CRC 错误时变频器返回数据格式: ADDRESS 0X85 Errornum CRC 如:要使写参数为写入RAM和EEPROM 应发送数据:01 05 00 40 FF 00 CRC(16进制) 变频器返回数据:01 05 FF 00 00 01 CRC(16进制) 发送数据:0040hex(线圈地址65) 06 写单个保持寄存器值(只能写参数值为单个字的参数) 上位机发送数据格式: ADDRESS 06 ADDRH ADDRL DA TAH DATAL CRC 注:ADDR: ADDR=Parameter Numbe r×10-1 正确时变频器返回数据格式: ADDRESS 06 ADDRH ADDRL DA TAH DA TAL CRC 错误时变频器返回数据: ADDRESS 0X86 Errornum CRC 如:要对变频器参数101写入1 应发送数据:01 06 00 03 F1 00 01 19 BD(16进制) 变频器返回数据:01 06 03 F1 00 01 19 BD(16进制) PARAMETER 101(1009)=03F1 HEX

菱f系列plc编程口通信协议

三菱FX系列 PLC 编程口通信协议总览 三菱PLC-FX2N 三菱FX系列PLC编程口通信协议总览 该协议实际上适用于PLC编程端口以及 FX-232AW 模块的通信。 通讯格式: 命令命令码目标设备 DEVICE READ CMD "0" X,Y,M,S,T,C,D DEVICE WRITE CMD "1" X,Y,M,S,T,C,D FORCE ON CMD " 7" X,Y,M,S,T,C FORCE OFF CMD "8" X,Y,M,S,T,C 传输格式: RS232C 波特率: 9600bps 奇偶: even 校验: 累加方式(和校验) 字符: ASCII 16进制代码: ENQ 05H 请求 ACK 06H PLC正确响应 NAK 15H PLC错误响应 STX 02H 报文开始 ETX 03H 报文结束 帧格式: STX CMD DATA ...... DATA ETX SUM(upper) SUM(lower) 例子: STX ,CMD ,ADDRESS, BYTES, ETX, SUM 02H, 30H, 31H,30H,46H,36H, 30H,34H, 03H, 37H,34H

SUM=CMD+......+ETX; 30h+31h+30h+46h+36h+30h+34h+03h=74h; 累加和超过两位取低两位 1、DEVICE READ(读出软设备状态值) 计算机向PLC发送: 始命令首地址位数终和校验 STX CMD GROUP ADDRESS BYTES ETX SUM 例子:从D123开始读取4个字节数据 02h 30h 31h,30h,46h,36h 30h,34h 03h 37h,34h 地址算法:address=address*2+1000h 再转换成ASCII 31h,30h,46h,36h PLC返回 STX 1ST DATA 2ND DATA ..... LAST DATA ETX SUM 注:最多可以读取64个字节的数据 例子:从指定的存储器单元读到3584这个数据 02h 33h 35h 38h 34h 03h 44h,36h 2、DEVICE WRITE(向PLC软设备写入值) 始命令首地址位数数据终和校验 STX CMD GROUP ADDRESS BYTES 1ST DATA 2ND DATA ...... LAST DATA ETX SUM 例子:向D123开始的两个存储器中写入1234,ABCD 02h 31h 31h,30h,46h,36h 30h,34h 33h,34h,31h,32h,43h,44h,41h,42h 03h 34h,39h PLC返回 ACK (06H) 接受正确 NAK (15H) 接受错误 3、位设备强制置位/复位 FORCE ON置位 始命令地址终和校验 STX CMD ADDRESS ETX SUM 02h 37h address 03h sum FORCE OFF复位 始命令地址终和校验

几种通信协议

RS-232-C RS-232-C是OSI基本参考模型物理层部分的规格,它决定了连接器形状等物理特性、以0和1表示的电气特性及表示信号意义的逻辑特性。 RS-232-C是EIA发表的,是RS-232-B的修改版。本来是为连接模拟通信线路中的调制解调器等DCE及电传打印机等DTE拉接口而标准化的。现在很多个人计算机也用RS-232-C作为输入输出接口,用RS-232-C作为接口的个人计算机也很普及。 RS-232-C的如下特点:采用直通方式,双向通信,基本频带,电流环方式,串行传输方式,DCE-DTE间使用的信号形态,交接方式,全双工通信。RS-232-C在ITU建议的V.24和V.28规定的25引脚连接器在功能上具有互换性。 RS-232-C所使用的连接器为25引脚插入式连接器,一般称为25引脚D-SUB。DTE端的电缆顶端接公插头,DCE端接母插座。 RS-232-C所用电缆的形状并不固定,但大多使用带屏蔽的24芯电缆。电缆的最大长度为15m。使用RS-232-C在200K位/秒以下的任何速率都能进行数据传输。 RS-449 RS-449是1977年由EIA发表的标准,它规定了DTE和DCE之间的机械特性和电气特性。RS-449是想取代RS-232-C而开发的标准,但是几乎所有的数据通信设备厂家仍然采用原来的标准,所以RS-232-C仍然是最受欢迎的接口而被广泛采用。 RS-449的连接器使用ISO规格的37引脚及9引脚的连接器,2次通道(返回字通道)电路以外的所有相互连接的电路都使用37引脚的连接器,而2次通道电路则采用9引脚连接器。 RS-449的电特性,对平衡电路来说由RS-422-A规定,大体与V.11具有相同规格,而RS-423-A大体与V.10具有相同规格。

通信协议与编程

MODBUS通讯协议及编程 ModBus通讯协议分为RTU协议和ASCII协议,我公司的多种仪表都采用ModBus RTU 通讯协议,如:YD2000智能电力监测仪、巡检表、数显表、光柱数显表等。下面就ModBus RTU协议简要介绍如下: 一、通讯协议 (一)、通讯传送方式: 通讯传送分为独立的信息头,和发送的编码数据。以下的通讯传送方式定义也与MODBUS RTU通讯规约相兼容: 初始结构= ≥4字节的时间 地址码= 1 字节 功能码= 1 字节 数据区= N 字节 错误校检= 16位CRC码 结束结构= ≥4字节的时间 地址码:地址码为通讯传送的第一个字节。这个字节表明由用户设定地址码的从机将接收由主机发送来的信息。并且每个从机都有具有唯一的地址码,并且响应回送均以各自的地址码开始。主机发送的地址码表明将发送到的从机地址,而从机发送的地址码表明回送的从机地址。 功能码:通讯传送的第二个字节。ModBus通讯规约定义功能号为1到127。本仪表只利用其中的一部分功能码。作为主机请求发送,通过功能码告诉从机执行什么动作。作为从机响应,从机发送的功能码与从主机发送来的功能码一样,并表明从机已响应主机进行操作。如果从机发送的功能码的最高位为1(比如功能码大与此同时127),则表明从机没有响应操作或发送出错。 数据区:数据区是根据不同的功能码而不同。数据区可以是实际数值、设置点、主机发送给从机或从机发送给主机的地址。 CRC码:二字节的错误检测码。

(二)、通讯规约: 当通讯命令发送至仪器时,符合相应地址码的设备接通讯命令,并除去地址码,读取信息,如果没有出错,则执行相应的任务;然后把执行结果返送给发送者。返送的信息中包括地址码、执行动作的功能码、执行动作后结果的数据以及错误校验码。如果出错就不发送任何信息。 1.信息帧结构 地址码:地址码是信息帧的第一字节(8位),从0到255。这个字节表明由用户设置地址的从机将接收由主机发送来的信息。每个从机都必须有唯一的地址码,并且只有符合地址码的从机才能响应回送。当从机回送信息时,相当的地址码表明该信息来自于何处。 功能码:主机发送的功能码告诉从机执行什么任务。表1-1列出的功能码都有具体的含义及操作 数据区:数据区包含需要从机执行什么动作或由从机采集的返送信息。这些信息可以是数值、参考地址等等。例如,功能码告诉从机读取寄存器的值,则数据区必需包含要读取寄存器的起始地址及读取长度。对于不同的从机,地址和数据信息都不相同。 错误校验码:主机或从机可用校验码进行判别接收信息是否出错。有时,由于电子噪声或其它一些干扰,信息在传输过程中会发生细微的变化,错误校验码保证了主机或从机对在传送过程中出错的信息不起作用。这样增加了系统的安全和效率。错误校验采用CRC-16校验方法。 注:信息帧的格式都基本相同:地址码、功能码、数据区和错误校验码。 2.错误校验 冗余循环码(CRC)包含2个字节,即16位二进制。CRC码由发送设备计算,放置于发送信息的尾部。接收信息的设备再重新计算接收到信息的 CRC码,比较计算得到的CRC码是否与接收到的相符,如果两者不相符,则表明出错。

ASCII码对照表完整版

A S C I I码对照表完整版 Revised final draft November 26, 2020

好用的A S C I I码对照表完整版 信息在计算机上是用二进制表示的,这种表示法让人理解就很困难。因此计算 机上都配有输入和输出设备,这些设备的主要目的就是,以一种人类可阅读的形式 将信息在这些设备上显示出来供人阅读理解。为保证人类和设备,设备和计算机之 间能进行正确的信息交换,人们编制的统一的信息交换代码,这就是ASCII码表,

在Web开发时,如下的ASCII码只要加上&#和;就可以变成Web可以辨认的字符了在处理特殊字符的时候特别有用,如:'单引号在数据库查询的时候是杀手,但是如果转换成'(注意:转换后的机构有:&#+字符的ASCII码值+;三个部分组成)再来存数据库,就没有什么影响了。其他的字符与ASCII码的对照如下表 ASCII表

键盘常用ASCII码 ESC键VK_ESCAPE(27)回车键:VK_RETURN(13)TAB键:VK_TAB(9)CapsLock键: VK_CAPITAL(20)Shift键:VK_SHIFT($10)Ctrl键:VK_CONTROL(17)Alt键: VK_MENU(18)空格键:VK_SPACE($20/32)退格键:VK_BACK(8)左徽标键:VK_LWIN(91)右徽标键:VK_LWIN(92)鼠标右键快捷键:VK_APPS(93) Insert键:VK_INSERT(45)Home键:VK_HOME(36)PageUp:VK_PRIOR(33)PageDown:VK_NEXT(34)End键:VK_END(35)Delete键:VK_DELETE(46) 方向键(←):VK_LEFT(37)方向键(↑):VK_UP(38)方向键(→):VK_RIGHT(39)方向键(↓):VK_DOWN(40) F1键:VK_F1(112)F2键:VK_F2(113)F3键:VK_F3(114)F4键:VK_F4(115)F5键:

通讯协议大全

T C P/I P TCP/IP是网络中使用的基本的通信协议。 TCP/IP协议包括TCP、IP、UDP、ICMP、RIP、TELNETFTP、SMTP、ARP、TFTP等许多协议,这些协议一起称为TCP/IP协议。 IPX/SPX(多用于局域网) 是基于施乐的XEROX’S Network System(XNS)协议,而SPX是基于施乐的XEROX’S SPP (Sequenced Packet Protocol:顺序包协议)协议 NetBEUI 即NetBios Enhanced User Interface,或NetBios增强用户接口。 网络通信协议: RS-232-C、RS-449、V.35、X.21、HDLC 简单网络管理协议: 简单网络管理协议SNMP、点到点协议PPP 3G标准: WCDMA(欧洲版)、CDMA2000(美国版)和TD-SCDMA(中国版) Modbus协议 Modbus就是工业控制器的网络协议中的一种 包括ASCII、RTU和TCP

现在Modbus已经是工业领域全球最流行的协议。此协议支持传统的RS-232、RS-422、RS-485和以太网设备。许多工业设备,包括PLC,DCS,智能仪表等都在使用Modbus协议作为他们之间的通讯标准。有了它,不同厂商生产的控制设备可以连成工业网络,进行集中监控。 网络协议大全 1、ARP(address resolution protocol)地址解析协议 2、SNMP(simple network management P)网络管理协议,是TCP/IP的一部分 3、AppleShare protocol(AppleShare 协议) 4、AppleTalk 协议 5?、BOOTP协议(Bootstrap?Protocol)?应用一个基于TCP/IP协议的协议,该协议主要用于有无盘工作站的局域网 6、CMIP(Common Management Information Protocol)通用管理信息协议,它是建立在开放系统互连通信模式上的网络管理协议。相关的通用管理信息服务(CMIS)定义了访问和控制网络对象,设备和从对象设备接收状态信息的方法。 7、 DHCP协议、Dynamic?Host?Configuration?Protocol(动态主机配置协议),应用:在Windows中要启用DHCP协议,只要将IP地址设置为“自动获得IP地址”即可 9、Connection-oriented Protocol/Connectionless Protocol面向连接的协议/无连接协议 10 、Discard Protocol抛弃协议它的作用就是接收到什么抛弃什么,它对调试网络状态

VB编写的Modbus RTU协议通讯源程序

modbus rtu协议可以算是一种事实上的工业标准协议,为许多仪表、PLC等所支持。以前有几个用户问如何使用VB编程来与我们的KND-K3系列PLC通讯,于是整了一个demo 程序。这次把这个demo共享,希望能给大家一点帮助。 1)模块文件:modCRC,其中包含了CRC校验的函数。 'data 待校验的数组名称 'no 数组中元素个数 'btLoCRC 算出的CRC高字节 'btHiCRC 算出的CRC低字节 Public Function CalCRC16Fast(data() As Byte, no As Integer, btLoCRC As Byte, btHiCR C As Byte) As String Dim CL As Byte, CH As Byte '多项式码&HA001 Dim SaveHi As Byte, SaveLo As Byte Dim i As Integer Dim Flag As Integer btHiCRC = &HFF btLoCRC = &HFF CL = &H1 CH = &HA0 For i = 0 To (no - 1) btHiCRC = btHiCRC Xor data(i) '每一个数据与CRC寄存器进行异或 For Flag = 0 To 7 SaveHi = btLoCRC SaveLo = btHiCRC btLoCRC = btLoCRC \ 2 '高位右移一位 btHiCRC = btHiCRC \ 2 '低位右移一位 If ((SaveHi And &H1) = &H1) Then '如果高位字节最后一位为1 btHiCRC = btHiCRC Or &H80 '则低位字节右移后前面补1 End If '否则自动补0 If ((SaveLo And &H1) = &H1) Then '如果LSB为1,则与多项式码进行异或 btLoCRC = btLoCRC Xor CH btHiCRC = btHiCRC Xor CL End If

最全ASCII码对照表

最全ASCII码对照表 Bin Dec Hex 缩写/字符解释 0000 0000 0 00 NUL (null) 空字符0000 0001 1 01 SOH (start of handing) 标题开始0000 0010 2 02 STX (start of text) 正文开始0000 0011 3 03 ETX (end of text) 正文结束0000 0100 4 04 EOT (end of transmission) 传输结束0000 0101 5 05 ENQ (enquiry) 请求 0000 0110 6 06 ACK (acknowledge) 收到通知0000 0111 7 07 BEL (bell) 响铃 0000 1000 8 08 BS (backspace) 退格 0000 1001 9 09 HT (horizontal tab) 水平制表符0000 1010 10 0A LF (NL line feed, new line) 换行键 0000 1011 11 0B VT (vertical tab) 垂直制表符0000 1100 12 0C FF (NP form feed, new page) 换页键 0000 1101 13 0D CR (carriage return) 回车键0000 1110 14 0E SO (shift out) 不用切换0000 1111 15 0F SI (shift in) 启用切换0001 0000 16 10 DLE (data link escape) 数据链路转义0001 0001 17 11 DC1 (device control 1) 设备控制1 0001 0010 18 12 DC2 (device control 2) 设备控制2 0001 0011 19 13 DC3 (device control 3) 设备控制3 0001 0100 20 14 DC4 (device control 4) 设备控制4 0001 0101 21 15 NAK (negative acknowledge) 拒绝接收0001 0110 22 16 SYN (synchronous idle) 同步空闲0001 0111 23 17 ETB (end of trans. block) 传输块结束0001 1000 24 18 CAN (cancel) 取消 0001 1001 25 19 EM (end of medium) 介质中断0001 1010 26 1A SUB (substitute) 替补 0001 1011 27 1B ESC (escape) 溢出 0001 1100 28 1C FS (file separator) 文件分割符0001 1101 29 1D GS (group separator) 分组符0001 1110 30 1E RS (record separator) 记录分离符0001 1111 31 1F US (unit separator) 单元分隔符 0010 0000 32 20 空格 0010 0001 33 21 ! 0010 0010 34 22 " 0010 0011 35 23 # 0010 0100 36 24 $ 0010 0101 37 25 % 0010 0110 38 26 & 0010 0111 39 27 "

(完整word版)常用几种通讯协议范文

常用几种通讯协议 Modbus Modbus 技术已成为一种工业标准。它是由Modicon 公司制定并开发的。其通讯主要采用 RS232,RS485 等其他通讯媒介。它为用户提供了一种开放、灵活和标准的通讯技术,降低了开发和维护成本。 Modbus 通讯协议由主设备先建立消息格式,格式包括设备地址、功能代码、数据地址和出错校验。从设备必需用Modbus 协议建立答复消息,其格式包含确认的功能代码,返回数据和出错校验。如果接收到的数据出错,或者从设备不能执行所要求的命令,从设备将返回出错信息。 Modbus 通讯协议拥有自己的消息结构。不管采用何种网络进行通讯,该消息结构均可以被系统采用和识别。利用此通信协议,既可以询问网络上的其他设备,也能答复其他设备的询问,又可以检测并报告出错信息。 在Modbus 网络上通讯期间,通讯协议能识别出设备地址,消息,命令,以及包含在消息中的数据和其他信息,如果协议要求从设备予以答复,那么从设备将组建一个消息,并利用Modbus 发送出去。 BACnet BACnet 是楼宇自动控制系统的数据通讯协议,它由一系列与软件及硬件相关的通讯协 议组成,规定了计算机控制器之间所有对话方式。协议包括:(1) 所选通讯介质使用的电子信 号特性,如何识别计算机网址,判断计算机何时使用网络及如何使用。(2) 误码检验,数据压缩 和编码以及各计算机专门的信息格式。显然,由于有多种方法可以解决上述问题,但两种不 同的通讯模式选择同一种协议的可能性极少,因此,就需要一种标准。即由ISO(国际标准化 协会〉于80 年代着手解决,制定了《开放式系统互联(OSI 〉基本参考模式(Open System Interconnection/Basic Reference Model 简称OSI/RM)IS0- 7498 》。 OSI/RM 是ISO/OSI 标准中最重要的一个,它为其它0SI 标准的相容性提供了共同的参考,为研究、设计、实现和改造信息处理系统提供了功能上和概念上的框架。它是一个具 有总体性的指导性标准,也是理解其它0SI 标准的基础和前提。 0SI/RM 按分层原则分为七层,即物理层、数据链路层、网络层、运输层、会话层、表示层、应用层。 BACnet 既然是一种开放性的计算机网络, 就必须参考OSIAM 。但BACnet 没有从网络的最低层重新定义自己的层次,而是选用已成熟的局域网技术, 简化0SI/RM, 形成包容许多局域网的简单而实用的四级体系结构。 四级结构包括物理层、数据链路层、网络层和应用层。 BACnet 协议由以下几部分组成:楼宇自控设备功能和信息数据的表示方式,五种规范局域网通讯协议以及它们之间相互通讯采用的协议。

相关主题
文本预览
相关文档 最新文档