当前位置:文档之家› 使用S7-200_MODBUS指令实现通讯方法及例程

使用S7-200_MODBUS指令实现通讯方法及例程

使用S7-200_MODBUS指令实现通讯方法及例程
使用S7-200_MODBUS指令实现通讯方法及例程

使用S7-200 MODBUS指令实现通讯方法及例程MODBUS主站程序:

MODBUS从站程序:

在从站中的“MBUS_INIT”指令的最下面一个参数“HoldStart”项设置为“&VB1000”,是因为从站和主站通信的数据放在了以VB1000开始的存储区内,其实这个地址不是固定的,但是必须是要通信数据的首地址;当主站要访问从站的前两个字节数据时,在主站“MBUS_MSG”指令的“Addr”参数项数据是40001而不是41001,说明Addr对应从站Holdstart的相对地址而不是从站的绝对地址;还有就是当主站要访问从站的第50、51字节时,“Addr”参数项数据是40026而不是40050。因为Addr的最小单元是字,从40001开始是第0个字,也就是40001对应PLC发送的数据中从站寄存器地址段数据是00 00而不是00 01,40002发送的从站寄存器地址是00 02,而不是00 01了,一次往后推,就可以得到40050对应发送的地址段数据是00 98,也就是对应从站中的VB1098和VB1099.

其实S7-200 MODBUS指令很好用,也很简单,就在主站和从站各自加上个“头”就可以了,但是很多时候回出现问题就是因为没有很好的去把握主站和从站的数据怎么对应,以至于找不准我们要的数据反而怀疑是协议没有设置好,或通信有问题等。

建议:MODBUS不是并不是西门子200的专用协议,PPI才是。所以如果只是200和200之间通信的话首选PPI,因为PPI的可靠性更强,编程更简单,只需主站编写读写指令(用向导时又省去了编程的麻烦直接调用向导子程序就行)从站不用编写任何的程序;PPI 的另一个优势是通信速率快最高是187.5Kbps,而MODBUS最快是115.2Kbps。我曾做的项目时一主十从,主站没有其他任何程序就只有通信,从站也一样,但是主站控制某一从站输出时要有2~3秒的延时,有的更长,但PPI即使是整套程序编完也感觉不出延时。不过MODBUS的一个优点是每次传输的数据多,最多是120个字240个字节,这个数据量是相当大了,另一个优点是可以和更多的现场仪表实现通信,因为现场仪表中更多的是支持

MODBUS协议的,很少支持PPI。虽然PPI每次读写的最大数据是16字节,但是PPI指令向导中可以组态24个读写指令,如果对某个从站一次读写不完还可以再读写一次,只要读写指令不超过24个,其实这个数据量也是不小的。不过在我做的项目中由于从站比较多,每个从站通信的数据量都不少,所以24条肯定是不够用,但是MODBUS的速率又慢,以太网的成本又高,那该怎么办呢?最后我们还是选择了PPI,只不过把从站需要计算转换的数据放到主站来处理,这样从站就相当于一个采集模块了,直接把原始数据上传到主站,这下24条指令就够了。这样做的一个优点就是把所有分散的数据集中到主站作为主站的本地数据来处理了,编程起来很方便,类似于300I/O模块之类的。

不管怎么说选择什么样的协议要看具体的情况和要求了。

1、ping命令使用详解

1、ping命令使用详解 以上就是怎么ping网速的相关介绍,你可以通过上面的说明了解怎么通过ping命令来检测网速,当然如果你想了解更多ping命令的使用方法,你可以输入ping /?,这时会显示所有有关ping命令的参数,具体如下: 用法: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS] [-r count] [-s count] [[-j host-list] | [-k host-list]] [-w timeout] [-R] [-S srcaddr] [-4] [-6] target_name 选项: -t Ping 指定的主机,直到停止。 若要查看统计信息并继续操作 - 请键入 Control-Break; 若要停止 - 请键入 Control-C。 -a 将地址解析成主机名。 -n count 要发送的回显请求数。 -l size 发送缓冲区大小。 -f 在数据包中设置“不分段”标志(仅适用于 IPv4)。 -i TTL 生存时间。 -v TOS 服务类型(仅适用于 IPv4。该设置已不赞成使用,且 对 IP 标头中的服务字段类型没有任何影响)。 -r count 记录计数跃点的路由(仅适用于 IPv4)。 -s count 计数跃点的时间戳(仅适用于 IPv4)。 -j host-list 与主机列表一起的松散源路由(仅适用于 IPv4)。 -k host-list 与主机列表一起的严格源路由(仅适用于 IPv4)。 -w timeout 等待每次回复的超时时间(毫秒)。 -R 同样使用路由标头测试反向路由(仅适用于 IPv6)。 -S srcaddr 要使用的源地址。 -4 强制使用 IPv4。 -6 强制使用 IPv6。

PLC增加CANopen通讯能力的方法

PLC增加CANopen通讯能力的方法 文档版本:2018/2/1

PLC增加CANopen通讯能力的方法一、写作背景 目前在工业上,使用PLC控制的场合越来越多。PLC具有可靠性高、适用性强、易学易用、体积小、重量轻、能耗低等优点,在工业控制领域中被广泛使用。目前市面上比较常见的PLC是西门子S7-200(图1)和西门子S7-300(图2)等。这些PLC一般只具有RS232/RS485或以太网接口,并且使用Modbus协议进行通信。但是随着时代的发展,越来越多的从站设备附带了CANopen协议,例如:伺服控制器(图3)、变频器(图4)、CANopen远程I/O(图5)、传感器(图6)。这样就造成不支持CANopen协议的PLC与CANopen协议从站设备之间无法建立通信。 图1 西门子S7-200 图2 西门子S7-300

图3支持CANopen通信的伺服控制器伺服控制器 图4支持CANopen通信的变频器 图5 CANopen远程I/O

图6支持CANopen通信的传感器 二、解决问题的方法 1. 直接购买带CANopen通信的PLC 此种方法必须使用新的PLC替换原有的,不但需要对新的PLC重新开发编程还会造成成本升高的问题。 2. 外接CANopen转换模块 此种方法非常灵活,转换模块可以按需定制,在不改变原有PLC的硬件结构的前提下外加一个CANopen通信模块,即可实现使用CANopen协议通信。 这里我们以西门子PLC为例说明如何使用外接CANopen转换模块的方式,将PLC扩展出CANopen通信接口。具体结构如下图7拓扑结构图所示。 图7 拓扑结构图

51串口通信程序(带详细注释)

51串口通信程序(带详细注释) #include#include //后面有一个比较函数#define uchar unsigned char#define uint unsigned intbit UART_Flag=0; //定义串口接收标志位 uchar str[50]; //定义一数组uchar length=0; //数组长度从0 开始void init() //初 始化uart{ TMOD=0X20; //定时器1 定时器方式工作模式2,可自动重载的8 位计数器常把定时/计数器1 以模式2 作为串行口波特率发生器 SCON=0X50; //选择工作模式1 使能接收,允许发送,允许接收 EA=1; //开总中断 ES=1; //打开串口中断ET1=0; //打开定时器中断 PCON=0X80; //8 位自动重载,波特率加倍 TH1=0XFF; //用22.1184 mhz 波特率 TL1=0XFF;TR1=1; //打开中时器 }void UART_Putch(uchar dat) //输出一个字符{SBUF=dat; //把数据送给sbuf 缓 存器中 while(TI!=1);//发送标志位TI 如果发送了为1,没发送为0,没发送等待,到 了退出循环 TI=0; //到了,TI 清为0 }void init1() interrupt 4 //uart 中断,4 为串口中断{ if(RI==1) //收到数据{ uchar m=SBUF; //m 为计算机发送给串口的数据,例,open //总体思想是,计算 机通知串口,我要发数据了RI=0; //收到清0 if(m==) //判断m 这位数据有无{ UART_Putch(); //回车UART_Putch(); // 换行str[length]=; //数据最后位加0 标 志位表示发完了数据UART_Flag=1; // 传完标志位} else if(m==) { } else if(m==)//b表退格//下面几句表删锄{ UART_Putch();

台达CANopen现场总线产品通讯整合应用实例

前言:近年来,各种现场总线技术在愈来愈多的工业现场得到良好的应用,国外多家知名自动化厂商相继推出了现场总线类产品,为了适应工业自动化产品技术发展的需要,满足众多客户现场总线应用需求,台达也推出了CANopen总线产品,支持台达全系列自动化产品,同时支持自定义设备,可以支持其他厂商产品接入CANopen现场总线。 本项目就是利用台达CANopen总线和台达其他自动化产品整合应用,基于CANopen现场总线通讯协议,达到高速通讯响应的控制要求。

控制系统技术方案配置:详见下表 序号 元件名称 型号规格 数量(台) 备注 1 人机界面 DOP-AE10THTD 1 10.4”

2 PLC主机 DVP28SV11R 1 16K Step 3 CANopen主站DVPCOPM-SL 1 SV左侧高速扩展 4 CANopen从站 IFD9503 5 CANopen/Modbus 5 变频器 VFD007B21A

750W,单相220V 6 变频器 VFD007M21A 3 750W,单相220V 7 变频器 VFD004S21A 1 400W,单相220V

上述表格仅列举出技术方案主要元器件,此外还包括121Ω终端电阻以及其他通讯连接电缆等辅助器件,此处均不予赘述。 控制系统原理框图简要介绍: 采用CANopen现场总线作为通讯介质,主要为了实现多从站大量数据高速通信响应和提高通讯稳定性,和传统Modbus通讯协议比较,CANopen总线通讯协议有质的飞跃,数据通讯不再受到Modbus轮

询方式的制约,大大提高了主从站之间的大量数据通讯响应速度和稳定性。 人机界面通过RS485和主站28SV PLC连接,28SV左侧高速并行接口连接CANopen总线主站模块DVPCOPM-SL,5台CANopen 总线从站模块IFD9503分别连接5台台达变频器,系统实现人机输入频率和启停命令,实时显示变频器输出频率、电流、电压等参数数

Ping命令大全及使用方法

Ping命令大全及使用方法 2006-12-10 21:24 -- Ping命令大全及使用方法 Ping是潜水艇人员的专用术语,表示回应的声纳脉冲,在网络中Ping 是一个十分好用的TCP/IP 工具。它主要的功能是用来检测网络的连通情况和分析网络速度。 Ping有好的善的一面也有恶的一面。先说一下善的一面吧。上面已经说过Ping的用途就是用来检测网络的连同情况和分析网络速度,但它是通过什么来显示连通呢?这首先要了解Ping的一些参数和返回信息。 以下是PING的一些参数: ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s count] [[-j computer-list] | [-k computer-list]] [-w timeout] destination-list -t Ping 指定的计算机直到中断。 -a 将地址解析为计算机名。 -n count 发送 count 指定的 ECHO 数据包数。默认值为 4。 -l length 发送包含由 length 指定的数据量的 ECHO 数据包。默认为 32 字节;最大值是65,527。 -f 在数据包中发送"不要分段"标志。数据包就不会被路由上的网关分段。 -i ttl 将"生存时间"字段设置为 ttl 指定的值。 -v tos 将"服务类型"字段设置为 tos 指定的值。 -r count 在"记录路由"字段中记录传出和返回数据包的路由。count 可以指定最少 1 台,最多 9 台计算机。 -s count 指定 count 指定的跃点数的时间戳。 -j computer-list 利用 computer-list 指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP 允许的最大数量为 9。 -k computer-list 利用 computer-list 指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由

51单片机串口通信,232通信,485通信,程序

51单片机串口通信,232通信,485通信,程序代码1:232通信 #include #define uchar unsigned char #define uint unsigned int uchar flag,a,i; uchar code table[]="i get"; void init() { TMOD=0X20; TH1=0XFD; TH0=0XFD; TR1=1; REN=1; SM0=0; SM1=1; EA=1; ES=1; } void main() { init();

while(1) { if(flag==1) { ES=0; for(i=0;i<6;i++) { SBUF=table[i]; while(!TI); TI=0; } SBUF=a; while(!TI); TI=0; ES=1; flag=0; } } } void ser() interrupt 4 {

RI=0; a=SBUF; flag=1; } 代码2:485通信 #include #include"1602.h" #define uchar unsigned char #define uint unsigned int unsigned char flag,a,i; uchar code table[]="i get "; void init() { TMOD=0X20; TH1=0Xfd; TL1=0Xfd; TR1=1; REN=1; SM0=0; SM1=1; EA=1; ES=1;

} void main() { init_1602(); init(); while(1) { if(flag==1) { display(0,a); } } } void ser() interrupt 4 { RI=0; a=SBUF; flag=1; } Love is not a maybe thing. You know when you love someone.

PING命令应用(入门必看)

一、Ping 的基础知识 ping 命令相信大家已经再熟悉不过了,但是能把ping 的功能发挥到最大的人却并不是很多,当然我也并不是说我可以让ping 发挥最大的功能,我也只不过经常用ping 这个工具,也总结了一些小经验,现在和大家分享一下。Ping 是潜水艇人员的专用术语,表示回应的声纳脉冲,在网络中Ping 是一个十分好用的TCP/IP工具。它主要的功能是用来检测网络的连通情况和分析网络速度。Ping有好的善的一面也有恶的一面。先说一下善的一面吧。 上面已经说过Ping 的用途就是用来检测网络的连同情况和分析网络速度,但它是通过什么来显示连通呢?这首先要了解Ping的一些参数和返回信息。 二、Ping命令详解 首先需要打开DOS命令界面,通过点击开始菜单中的“运行”选项,输入“cmd”回车即可打开(如下图)。 按确认键后 我们输入ping/?例出ping以下是PING的一些参数(如图):

下面我和大家讲解一下,每个参数意思和使用。 ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s count] [-j computer-list] | [-k computer-list] [-w timeout] destination-list -t Ping指定的计算机直到中断。 -a 将地址解析为计算机名。 -n count 发送count指定的ECHO数据包数。默认值为4。 -l length 发送包含由length指定的数据量的ECHO数据包。默认为32字节;最大值是65,527。 -f 在数据包中发送"不要分段"标志。数据包就不会被路由上的网关分段。 -i ttl 将"生存时间"字段设置为ttl指定的值。 -v tos 将"服务类型"字段设置为tos指定的值。 -r count 在"记录路由"字段中记录传出和返回数据包的路由。count可以指定最少1台,最多9台计算机。 -s count 指定count指定的跃点数的时间戳。 -j computer-list 利用computer-list指定的计算机列表路由数据包。连续计算机可以被中间网关分隔(路由稀疏源)IP允许的最大数量为9。 -k computer-list 利用computer-list指定的计算机列表路由数据包。连续计算机不能被中间网关分隔(路由严格源)IP允许的最大数量为9。 -w timeout 指定超时间隔,单位为毫秒。 destination-list 指定要ping的远程计算机。 三、如何利用PING命令检查网络连通状态 连通问题是由许多原因引起的,如本地配置错误、远程主机协议失效等,当然还包括设备等造成的故障。首先我们讲一下使用Ping命令的步骤。使用Ping 检查连通性有五个步骤: 1.使用ipconfig/all观察本地网络设置是否正确,如图;

PING命令作用

1)ping命令:ping命令是用来检查网络是否通畅以及网络连接速度的命令,对于黑客来说ping命令是第一个必须掌握的DOS命令,用Ping 命令就是我们给目标IP地址发一个数据包,再根据返回值来判断目标 主机的存在位置及操作系统等。 下面我们来看看它的常用操作。在命令提示框中输入ping,回车。ping 的命令格式如下 C:\Documents and settings\Administrator\ping Usage: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS] [-r count] [-s count] [[-j host-list] : [-k host-list]] [-w timeout] target_name 在此,我们只掌握一些基本的有用的参数就行了。 -t表示不间断的向目标IP发送数据包,直到我们按ctrl+c强迫其停止为止。如果你使用的是100M的宽带,而目标IP只是56K的小猫(调制解调器)那要不了多久目标IP就会因为接受不了这么多的数据而掉线,一次攻击就这么实现了。(不过现在已经米有什么人用56K的小 猫了) -l定义发送数据包的大小,默认为32字节,最大为65500字节,再结合上面的-t一起使用,有更好的效果。例如ping 125.213.73.120 -l 65500 -t (注:125.213.73.120为目标IP地址,65500为字节大小,可自行改动.)由于目标IP(125.213.73.120)有防火墙,所以我们ping 不进去显示Request timed out我们可以按Ctrl+C让其停止。 -n 定义向目标IP发送数据包的次数,默认为3次。如果-n和-t 一 起使用,则以放在后面的为准。

M340与ATV31的CANopen通信及参数设置案例

Unity M340与ATV31 CANopen通信向导<一> ——CANopen通信控制启停、CANopen通信给定速度 本向导分为两部分: 1.《快速操作指南》---Know How, 满足了客户“快速解决调试问题”的需求。 ●发送快---大小在2M左右,能方便快速地通过电子邮件发给客户使用 ●调试快---提供了反复调试过的完整准确的PLC通信程序,客户可直接下载 ●接线快---含有实物照片的通信接线图使客户非常容易理解和模仿,并且快速完成接线 ●设置快---图形化的变频器参数设置指导使客户可直接上手设置参数,不用查找手册 2.《完全通信指导》---Know Why, 满足了客户“系统学习通信知识”的需求。 ●知识全---不仅给出了详细的调试步骤和详细解释,还使客户在完成通信的同时系统学习相关 的产品和通信知识 ●考虑全---对客户调试可能遇到的各种突发情况给出了相关提示和解决方法 ●理解易---提供了程序指令和结构的详细注释,使客户能容易的理解和学习提供的标准程序并 能在原有程序上进行扩展 第二部分 完全通信指导

重要信息 注意:在尝试安装、操作或调试设备之前,请仔细阅读下述说明并通过查看来熟悉设备。下述特别信息可能会在文本其他地方或设备上出现,提示用户潜 在的危险和注意事项,或提供阐明或简化某一过程的信息。 遵守使用说明,可能导致调试失败、人身伤害甚至设备损坏。 此符号的注意事项,以避免不必要的调试错误。

目录 1. 实验简介 (4) 2. 硬软件环境 (4) 3. ATV31变频器设置 (5) 3.1 操作说明 (5) 3.2 参数设置 (6) 3.2.1 控制方式 (7) 3.2.2 通信参数 (8) 4. 硬件连接 (10) 5. PLC编程 (11) 5.1 硬件组态 (11) 5.1.1 组态CPU (11) 5.1.2 组态CANopen主站 (12) 5.1.3 配置CANopen网络和从站 (13) 5.2 ATV31 内部变量说明 (15) 5.2.1 ATV31 内部字 (15) 5.2.2 ATV31 DRIVERCOM流程 (16) 5.3 编程 (17) 6. 实验调试 (20) 6.1 计算机与PLC的连接 (20) 6.2 软件调试 (22) 6.3 ATV31常见通信故障 (23) 7. 带多台变频器 (24) 7.1 硬件扩展 (24) 7.2 软件扩展 (25) 7.1.1 同一变频器通信多个变量 (25) 7.1.2 连接多个变频器 (25) 8. 附件 (26) 8.1 Unity M340程序 (26) 8.2 ATV31的CANopen用户手册 (26) 8.3 ATV31编程手册 (26) 8.4 Unity M340 CANopen现场总线用户手册 (26)

Ping使用方法

Ping使用方法大全 首先从什么是Ping讲起吧! 什么是Ping Ping是典型的网络工具。Ping 是Windows系列自带的一个可执行命令,从98到最新的2003 Server版的计算机都带有这个命令行工具。Ping能够辨别网络功能的某些状态。这些网络功能的状态是日常网络故障诊断的基础。特别是Ping能够识别连接的二进制状态(也就是是否连通)。Ping 命令通过向计算机发送ICMP 回应报文并且监听回应报文的返回,以校验与远程计算机或本地计算机的连接。对于每个发送报文,Ping 最多等待1 秒,并打印发送和接收把报文的数量。比较每个接收报文和发送报文,以校验其有效性。默认情况下,发送四个回应报文,每个报文包含64 字节的数据。Ping向目标主机(地址)发送一个回送请求数据包,要求目标主机收到请求后给予答复,从而判断网络的响应时间和本机是否与目标主机(地址)联通。 ping命令 校验与远程计算机或本地计算机的连接。只有在安装TCP/IP 协议之后才能使用该命令。(TCP/IP 协议应该知道装吧,装系统时就有了,如果万一删了怎么办?还能怎么办,重新装吧!!怎样装,以后再说。。呵呵~~~) ping ip [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s count] [[-j computer-list] | [-k computer-list]] [-w timeout] destination-list 参数 -t ( 校验与指定计算机的连接,直到用户中断。若要中断可按快捷键:CTRL+C) -a (将地址解析为计算机名。) -n count (发送由count 指定数量的ECHO 报文,默认值为4。) -l length (发送包含由length 指定数据长度的ECHO 报文。默认值为64 字节,最大值为8192 字节。) -f (在包中发送“不分段”标志。该包将不被路由上的网关分段。) -i ttl (将“生存时间”字段设置为ttl 指定的数值。其中:ttl:表示从1到255之间的数) -v tos (将“服务类型”字段设置为tos 指定的数值。) -r count (在“记录路由”字段中记录发出报文和返回报文的路由。指定的Count 值最小可以是1,最大可以是9 。) 例: C:\Documents and Settings\Administrator>ping 169.254.190.92 -r 4

单片机串口通信C程序及应用实例

一、程序代码 #include//该头文件可到https://www.doczj.com/doc/f49310368.html,网站下载#define uint unsigned int #define uchar unsigned char uchar indata[4]; uchar outdata[4]; uchar flag; static uchar temp1,temp2,temp3,temp; static uchar R_counter,T_counter; void system_initial(void); void initial_comm(void); void delay(uchar x); void uart_send(void); void read_Instatus(void); serial_contral(void); void main() { system_initial(); initial_comm(); while(1) { if(flag==1) { ES = 0; serial_contral(); ES = 1; flag = 0; } else read_Instatus(); } } void uart_send(void) { for(T_counter=0;T_counter<4;T_counter++) { SBUF = outdata[T_counter]; while(TI == 0);

TI = 0; } T_counter = 0; } uart_receive(void) interrupt 4 { if(RI) { RI = 0; indata[R_counter] = SBUF; R_counter++; if(R_counter>=4) { R_counter = 0; flag = 1; } } } void system_initial(void) { P1M1 = 0x00; P1M0 = 0xff; P1 = 0xff; //初始化为全部关闭 temp3 = 0x3f;//初始化temp3的值与六路输出的初始值保持一致 temp = 0xf0; R_counter = 0; T_counter = 0; } void initial_comm(void) { SCON = 0x50; //设定串行口工作方式:mode 1 ; 8-bit UART,enable ucvr TMOD = 0x21; //TIMER 1;mode 2 ;8-Bit Reload PCON = 0x80; //波特率不加倍SMOD = 1 TH1 = 0xfa; //baud: 9600;fosc = 11.0596 IE = 0x90; // enable serial interrupt TR1 = 1; // timer 1 RI = 0; TI = 0; ES = 1; EA = 1; }

Ping与IPconfig命令的使用

上机一Ping与IPconfig命令的使用 1.Ping命令 1.1 命令格式 ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS] [-r count] [-s count] [[-j host-list] | [-k host-list]] [-w timeout] [-R] [-S srcaddr] [-4] [-6] target_name 1.2 实验内容 (1)-t参数 该参数的意思是一直用ping命令去测试某个地址或某个服务器,直到用户按Ctrl+C 强制中断。如:ping https://www.doczj.com/doc/f49310368.html, –t。 操作要求:请用该参数去ping某台计算机,并用CTRL+C中断,然后查看Ping的情况。 (2)-a参数 解析计算机NetBios名。如:ping -a 192.168.1.21。 操作要求:请用该参数去Ping某台计算机,并查看该台计算机的NetBios名。 (3)-n count参数 发送count指定的Echo数据包数。在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如想测试发送50个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过以下获知:ping -n 50 202.103.96.68 操作要求:请用该命令测试发送100个数据包到某台计算机的时间。 (4)-l size参数 定义echo数据包大小。在默认的情况下windows的ping发送的数据包大小为32byt,可以自己定义它的大小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到65500byt,因为Windows系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向对方一次发送的数据包大于或等于65532时,对方就很有可能当机,所以微软公司为了解决这一安全漏洞于是限制了ping的数据包大小。虽然微软公司已经做了此限制,但这个参数配合其他参数以后危害依然非常强大,比如可以通过配合-t参数来实现一个带有攻击性的命令。 ping -l 500 192.168.1.1 操作要求:请用该参数发送一个自己定义大小的数据包到某台计算机。 (5)-i TTL 参数 指定TTL值在对方的系统里停留的时间。此参数同样是帮助检查网络运转情况的。 (6)-r count 参数 在“记录路由”字段中记录传出和返回数据包的路由。在一般情况下发送的数据包是通过一个个路由才到达对方的,但到底是经过了哪些路由呢?通过此参数就可以设定想探测经过的路由的个数,不过限制在了9个,也就是说只能跟踪到9个路由,如: ping -n 1 -r 9 202.96.105.101 (发送一个数据包,最多记录9个路由) 操作要求:请用该参数去Ping某台计算机,并指经过的路由数。

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字节为

CAN总线与CANopen协议

CAN总线与CANOpen协议 一CAN总线简介 1.1 引言 在20世纪90年代的汽车研究领域,采用总线分布式控制获得了很大的成功。用户要求汽车的控制系统具有优越的性能以保证汽车的安全性和舒适性,因此越来越多的具有超强计算能力的电子设备加载在汽车上。这就要求不同的电子设备之间能够进行通信和数据交换,以达到信息共享协调工作的目的。德国的博世公司(Bosch)率先将CAN总线(Controller Area Network)应用于汽车电子控制系统,解决了控制系统的部件之间的以及控制系统与测试设备主机的数据交换问题,替代了原有网络(用于车体控制的LIN网络、用于厂内环境控制的MOST 网络及原有车内通信的Flecray网络等)实现的功能。由于其独特的设计思想和高可靠性,在不同总线标准的竞争中获得了广泛的认可,并逐渐成为汽车最基本的控制网络,广泛应用于火车、机器人、楼宇控制、机械制造、数字机床、医疗器械、自动化仪表等领域。 图1.1 早期的ECU(汽车电子控制单元)通信 CAN总线是一种串行通信协议,具有较高的通信速率的和较强的抗干扰能力,可以作为现场总线应用于电磁噪声较大的场合。由于CAN总线本身只定义ISO/OSI模型中的第一层(物理层)和第二层(数据链路层),通常情况下CAN 总线网络都是独立的网络,所以没有网络层。在实际使用中,用户还需要自己定义应用层的协议,因此在CAN总线的发展过程中出现了各种版本的CAN应用

层协议,现阶段最流行的CAN应用层协议主要有CANopen、DeviceNet和J1939等协议。 图1.2 基于总线(CAN)的ECU通信 1.2 CAN总线的特点 CAN总线并不采用物理地址的模式传送数据,而是每个消息有自己的标识符用来识别总线上的节点。标识符主要有2个功能:消息滤波和消息优先级确定。节点利用标识符确定是否接收总线上的传送的消息当有2个或更多节点需要传送数据时,根据标识符确定消息的优先级。总线访问采用多主原则,所有节点都可以作为主节点占用总线。CAN总线相对于Ethernet具有非破坏性避免总线冲突的特点(CSMA/CA协议,与CSMA/CD协议相似),这种方式可以保证在产生总线冲突的情况下,具有更高优先级的信息没有被延时传输。 其物理传输层详细和高效的定义,使得CAN总线具有其它总线无法达到的优势,注定其在工业现场总线中占有不可动摇的地位,CAN总线通信主要具有如下所示的优势和特点: (1)CAN总线上任意节点均可在任意时刻主动的向其它节点发起通信,节点没有主从之分,但在同一时刻优先级高的节点能获得总线的使用权,在高优先级的节点释放总线后,任意节点都可使用总线; (2)CAN总线传输波特率为5Kbps~1Mbps,在5Kbps的通信波特率下最远传输距离可以达到10Km,即使在1Mbps的波特率下也能传输40m的距离。在1Mbps波特率下节点发送一帧数据最多需要134μs; (3)CAN总线采用载波监听多路访问、逐位仲裁的非破坏性总线仲裁技术。在节点需要发送信息时,节点先监听总线是否空闲,只有节点监听到总线空

PING命令使用方法详解

PING命令使用方法详解 PING命令的功能是验证本地计算机与远程计算机(或者是局域网内的计算机)的连接。该命令只有在安装了TCP/IP协议后才可以使用。 依次单击“开始”→“运行”,弹出“运行”对话框,在窗口中输入“CMD”,打开命令行窗口,在命令中输入“ping /?”得到PING命令用法帮助如下: Usage: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS][-r count] [-s count] [[-j host-list] | [-k host-list]] [-w timeout] target_name Options: -t Ping the specified host until stopped. To see statistics and continue - type Control-Break; To stop - type Control-C. -a Resolve addresses to hostnames. -n count Number of echo requests to send. -l size Send buffer size. -f Set Don't Fragment flag in packet. -i TTL Time To Live. -v TOS Type Of Service. -r count Record route for count hops. -s count Timestamp for count hops. -j host-list Loose source route along host-list. -k host-list Strict source route along host-list. -w timeout Timeout in milliseconds to wait for each reply. Ping命令参数中文含义如下: -t Ping 指定的计算机直到中断。 -a 将地址解析为计算机名。 -n count 发送count指定的ECHO数据包数。默认值为4。 -l size 发送包含由size指定的数据量的ECHO数据包。默认为32字节,可选值为65,527 -f 在数据包中发送“不要分段”标志。数据包就不会被路由上的网关分段 -i TTL 将“生存时间”字段设置为TTL指定的值。 -v TOS 将“服务类型”字段设置为TOS指定的值。 -r count 在“记录路由”字段中记录传出和返回数据包的路由。Count可以指定最少1台,最多9台计算机。 -s count 指定count指定的跃点的时间戳。 -j host-list 利用host-list指定的计算机列表路由数据包。连续计算机可以被中间网关分隔IP允许的最大数量为9。 -k host-list 利用host-list指定的计算机列表路由数据包。连续计算机不能被中间网关分隔IP允许的最大数量为9。 -w timeout 指定超时间隔,单位为毫秒。 Ping命令用法举例: 1、Ping IP址 依次单击“开始”→“运行”,弹出“运行”对话框,在窗口中输入“CMD”,打开命令行

ping命令的用法大全

ping命令的用法大全! 1)如何查看本机所开端口: 用netstat -an命令查看!再stat下面有一些英文,我来简单说一下这些英文具体都代表什么~ LISTEN:侦听来自远方的TCP端口的连接请求 SYN-SENT:再发送连接请求后等待匹配的连接请求 SYN-RECEIVED:再收到和发送一个连接请求后等待对方对连接请求的确认 ESTABLISHED:代表一个打开的连接 FIN-WAIT-1:等待远程TCP连接中断请求,或先前的连接中断请求的确认 FIN-WAIT-2:从远程TCP等待连接中断请求 CLOSE-WAIT:等待从本地用户发来的连接中断请求 CLOSING:等待远程TCP对连接中断的确认 LAST-ACK:等待原来的发向远程TCP的连接中断请求的确认 TIME-WAIT:等待足够的时间以确保远程TCP接收到连接中断请求的确认 CLOSED:没有任何连接状态 ××××××××××××××××××××××××××××××××××××××××××××× 2)如何获得一个IP地址的主机名? 利用ping -a ip 命令查看!再第一行的pinging后面的『ip』前面的英文就是对方主机名! 同样道理,利用ping machine_name也可以得到对方的ip 获得一个网站的ip地址的方法是:ping https://www.doczj.com/doc/f49310368.html, 比如想知道sohu的ip,就用ping https://www.doczj.com/doc/f49310368.html,来查看就可以了~ 顺便说一句:如果返回:Reply from *.*.*.*: TTL expired in transit的话,呵呵,代表TTL(生命周期)在传输过程中过期 什么意思呢?我来解释一下! 导致这个问题出现的原因有两个:1)TTL值太小!TTL值小于你和对方主机之间经过的路由器数目。2)路由器数量太多,经过路由器的数量大于TTL值! 呵呵,其实这两点是一个意思!只不过说法不同而已! ××××××××××××××××××××××××××××××××××××××××××××× 3)如何查看本机的ip地址? 用ipconfig来查看就可以! 也可以再Windows中的开始菜单,运行中输入winipcfg,同样可以看到自己的ip

串口通信测试方法

串口通信测试方法 1 关于串口通信的一些知识: RS-232C是目前最常用的串行接口标准,用来实现计算机和计算机之间、计算机和外设之间的数据通信。 在PC机系统中都装有异步通信适配器,利用它可以实现异步串行通信。而且MCS-51单片机本身具有一个全双工的串行接口,因此只要配以电平转换的驱动电路、隔离电路就可以组成一个简单可行的通信接口。 由于MCS-51单片机的输入和输出电平为TTL电平,而PC机配置的是RS-232C 标准串行接口,二者电气规范不一致,因此要完成PC机与单片机的数据通信,必须进行电平转换。 注明:3)RS-232C上传送的数字量采用负逻辑,且与地对称 逻辑1:-3 ~-15V 逻辑0:+3~+15V 所以与单片机连接时常常需要加入电平转换芯片: 2 实现串口通信的三个步骤: (1)硬件连接 51单片机有一个全双工的串行通讯口,所以单片机和计算机之间可以方便地进行串口通讯。进行串行通讯时要满足一定的条件,比如计算机的串口是RS232电平的,而单片机的串口是TTL电平的,两者之间必须有一个电平转换电路,我们采用了专用芯片MAX232进行转换。我们采用了三线制连接串口,也就是说和计算机的9针串口只连接其中的3根线:第5脚的GND、第2脚的RXD、第3脚的TXD。电路如下图所示,MAX232的第10脚和单片机的11脚连接,第9脚和单片机的10脚连接,第15脚和单片机的20脚连接。 使用MAX232串口通信电路图(9孔串口接头) (2)串行通信程序设计 ①通信协议的使用 通信协议是通信设备在通信前的约定。单片机、计算机有了协议这种

约定,通信双方才能明白对方的意图,以进行下一步动作。假定我们需要在PC 机与单片机之间进行通信,在设计过程中,有如下约定:

Ping命令全解

Ping命令全解 用于Windows下的Ping指令相信大家已经再熟悉不过了,但是能把Ping的功能发挥到最大的人却并不是很多。这里,我们参照Ping指令的辅助说明来给大家讲讲使用Ping时会用到的技巧(Ping只有在安装了TCP/IP通讯协议以后才可以使用): Ping [-t] [-a] [-n count] [-l length] [-f] [-i ttl] [-v tos] [-r count] [-s count] [[-j computer-list] | [-k computer-list]] [-w timeout] destination-list 下面我们对其参数进行解释: -t Ping the specified host until stopped.To see statistics and continue - type Control-Break;To stop - type Control-C. 不停的Ping地方主机,直到你按下Ctrl+C。 此功能没有什么特别的技巧,不过可以配合其他参数使用,这将在下面提到。 -a Resolve addresses to hostnames. 解析计算机NetBIOS名。 例:C:\>Ping -a 192.168.1.21 Pinging https://www.doczj.com/doc/f49310368.html, [192.168.1.21] with 32 bytes of data: Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 Reply from 192.168.1.21: bytes=32 time<10ms TTL=254 Ping statistics for 192.168.1.21: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms 从上面就可以知道IP为192.168.1.21的计算机NetBIOS名为https://www.doczj.com/doc/f49310368.html,。 -n count Number of echo requests to send. 发送count指定的Echo数据包数。 在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我们想测试发送50个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过以下得知: C:\>Ping -n 50 202.103.96.68 Pinging 202.103.96.68 with 32 bytes of data: Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 Request timed out. ……………… Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 Reply from 202.103.96.68: bytes=32 time=50ms TTL=241 Ping statistics for 202.103.96.68: Packets: Sent = 50, Received = 48, Lost = 2 (4% loss),Approximate round trip times in milli-seconds: Minimum = 40ms, Maximum = 51ms, Average = 46ms

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