CPU 通过以太网通信,如何将接收的数据打包处理

作者&投稿:辕友 (若有异议请与网页底部的电邮联系)
以太网接受数据过程是怎么样的?~

一般不会这样实现,首先是硬件的缓冲区很小,操作系统TCP IP驱动一般会尽可能地将数据从硬件里取出来放入到系统缓冲区里,你调用recv只不过是把数据从系统缓冲区存入到你的用户空间缓冲区而已

当然,系统缓冲区也是会满的,这个怎么办,我就拿TCP和UDP来说吧

对于TCP,如果系统缓冲区已经满了,再发来的数据就会丢掉,并且TCP协议栈对向对方发一个包,告诉对方,我的窗口已经满了,请不要继续发送数据,等用户调用recv将数据取走后,对方才可以继续发送数据,所以TCP其实是通过一个窗口大小这样东东来控制收发速度和用来确认数据传输有效性的

对于UDP就不是这样了,缓冲区满了直接把数据丢了,它也不管是否接收成功

已经按很简单的解释了。。。能理解吧。。。

如果你对Modbus稍有了解,对VB编程有一定基础,以下的解答会有帮助。

Modbus是应用层协议,它定义了一个与基础通信层无关的简单协议数据单元(PDU):功能码+数据单元。Modbus要用于特定的总线或网络上,必须在PDU上引入一些附加域组成应用数据单元(ADU),例如用于以太网时,其传输模式是Modbus TCP,这时ADU=MBAP报文头+PDU。编程组成符合ADU格式的帧,就是常说的“数据打包”,一般在用户定义的发送缓冲区(使用字节数组)中完成。对于接收到的数据帧,需要按ADU格式去理解并编程处理,这就是常说的“数据解包”。

在VB中编程实现Modbus TCP通信,使用以太网通信控件,端口号是502。至于TCP/IP协议如何实现,不需要费心。编程重点还是ADU数据帧的打包、解包及事务处理。

Q系列PLC简介: 1、Q系列PLC为插槽式结构,电源、CPU、I/O单元各为独立模块,适用于点数大于250点以上的系统 2、有基本模式CPU、高性能模式CPU、过程控制CPU、运动控制CPU 四种类型 3、节省空间与配线,安装Q系列所需的空间只是原来A系列的60% 4、Q系列有5槽、8槽、12槽多种基板,可灵活配置,减少系统所用基板数。 5、Q系列有更强的CC-LINK网络功能,有支持以太网通讯的模块 6、设备兼容性优越,配有更多种高性能模块基本模式CPU: Q00JCPU:程序步:8K步 CPU与电源模块和基本的组合 Q00CPU:程序步:8K步 Q01CPU:程序步:14K步高性能模式CPU: Q02CPU:程序步:28K步 Q02HCPU:程序步:28K步 Q06HCPU:程序步:60K步 Q12HCPU:程序步:124K步 Q25HCPU:程序步:252K步过程控制CPU: Q12PH Q25PH 运动控制CPU: Q172CPU:用于8轴控制 Q173CPU:用于32轴控制 [CPU - Q 模式] Q00JCPU 程序容量:8K 步 Q00JCPU-SET 程序容量:8K 步;且自带64点的QH42P高密度单元一块 Q00JCPU-S8-SET 程序容量:8K 步;且自带2块QX40及2块QY10的单元 Q00CPU 程序容量:8K 步 Q01CPU 程序容量:14K 步 Q02CPU 程序容量:28K 步 Q02HCPU 程序容量:28K 步,高速 Q06HCPU 程序容量:60K 步,高速 Q12HCPU 程序容量:124K 步,高速 Q25HCPU 程序容量:252K 步,高速 -[CPU - iQ 模式] Q00UJCPU 程序容量:10K 步 Q00UJCPU-SET 程序容量:10K 步;且自带64点的QH42P高密度单元一块 Q00UJCPU-S8-SET 程序容量:10K 步;且自带2块QX40及2块QY10的单元 Q00UCPU 程序容量:10K 步 Q01UCPU 程序容量:15K 步 Q02UCPU 程序容量:20K 步;超高速; Q03UDCPU 程序容量:30K 步;超高速;多CPU间超高速通讯 Q04UDHCPU 程序容量:40K 步;超高速;多CPU间超高速通讯 Q06UDHCPU 程序容量:60K 步;超高速;多CPU间超高速通讯 Q10UDHCPU 程序容量:100K 步;超高速;多CPU间超高速通讯 Q13UDHCPU 程序容量:130K 步;超高速;多CPU间超高速通讯 Q20UDHCPU 程序容量:200K 步;超高速;多CPU间超高速通讯 Q26UDHCPU 程序容量:260K 步;超高速;多CPU间超高速通讯 Q03UDECPU 程序容量:30K 步;超高速;多CPU间超高速通讯,内置以太网 Q04UDEHCPU 程序容量:40K 步;超高速;多CPU间超高速通讯,内置以太网 Q06UDEHCPU 程序容量:60K 步;超高速;多CPU间超高速通讯,内置以太网 Q10UDEHCPU 程序容量:100K 步;超高速;多CPU间超高速通讯,内置以太网 Q13UDEHCPU 程序容量:130K 步;超高速;多CPU间超高速通讯,内置以太网 Q20UDEHCPU 程序容量:200K 步;超高速;多CPU间超高速通讯,内置以太网 Q26UDEHCPU 程序容量:260K 步;超高速;多CPU间超高速通讯,内置以太网 -[CPU - 过程控制CPU 模块] Q02PHCPU 程序容量:28K 步,过程控制 Q06PHCPU 程序容量:60K 步,过程控制 Q12PHCPU 程序容量:124K 步,过程控制 Q25PHCPU 程序容量:252K 步,过程控制 -[CPU - 冗余控制CPU 模块] Q12PRHCPU 程序容量:124K 步,冗余控制 Q25PRHCPU 程序容量:252K 步,冗余控制 -[冗余控制数据跟踪电缆] QC10TR 1m数据跟踪电缆 QC30TR 3m数据跟踪电缆 -[主基板,扩展基板模块] Q33B-E 电源 + CPU + 3个Q系列I/O 插槽,CE/UL/cUL Q35B-E 电源 + CPU + 5个Q系列I/O 插槽,CE/UL/cUL Q38B-E 电源 + CPU + 8个Q系列I/O 插槽,CE/UL/cUL Q312B-E 电源 + CPU + 12个Q系列I/O 插槽,CE/UL/cUL Q63B 电源 + 3个Q系列I/O 插槽,CE/UL/cUL Q65B 电源 + 5个Q系列I/O 插槽,CE/UL/cUL Q68B 电源 + 8个Q系列I/O 插槽,CE/UL/cUL Q612B 电源 + 12个Q系列I/O 插槽,CE/UL/cUL Q52B 2个Q系列I/O 插槽(无电源插槽) Q55B 5个Q系列I/O 插槽(无电源插槽) Q38RB 2个电源 + CPU + 8个Q系列I/O 插槽(冗余系统主基板) Q68RB 2个电源 + 8个Q系列I/O 插槽(冗余系统扩展基板) Q65WRB 2个电源 + 双总线+ 5个Q系列I/O 插槽(冗余系统基板) -[主基板 - iQ 模式] 38DB 电源 + CPU + 8个Q系列I/O 插槽;支持多CPU间超高速通讯 312DB 电源 + CPU + 12个Q系列I/O 插槽;支持多CPU间超高速通讯 -[电源模块] Q61P 100-240VAC 输入/ 5VDC 6A 输出,CE/UL/cUL Q62P 100-240VAC 输入/ 5VDC 3A,24VDC/0.6A 输出 Q63P 24VDC 输入/ 5VDC 6A 输出 Q64PN 100-240VAC 输入/ 5VDC 8.5A 输出 Q63RP 24VDC 输入/ 5VDC 8.5A 输出(冗余系统电源模块) Q64RP 100-120/200-240VAC 输入/ 5VDC 8.5A 输出(冗余系统电源模块)


揭东县18056469856: 以太网接受数据过程是怎么样的? -
务昂瑞新: 一般不会这样实现,首先是硬件的缓冲区很小,操作系统TCP IP驱动一般会尽可能地将数据从硬件里取出来放入到系统缓冲区里,你调用recv只不过是把数据从系统缓冲区存入到你的用户空间缓冲区而已 当然,系统缓冲区也是会满的,这个怎么...

揭东县18056469856: 如何实现两个S7 - 1200 CPU之间的以太网通信.pdf -
务昂瑞新: S7-1500 CPU 和 S7-1200 CPU 之间可以实现 Modbus/TCP 的通信.在 S7-1500 CPU 和 S7-1200 CPU 中调用 “MB_CLIENT” 和 “MB_SERVER” 指令并参数化. “MB_CLIENT” 指令把 CPU 的以太网连接实现为 Modbus/TCP 客户机通...

揭东县18056469856: 怎么通过以太网访问cpu
务昂瑞新: 详见:《WINCC与S7-300/400的以太网通讯》下载:http://www2.ad.siemens.com.cn/Download/Upload/AS/application/A0152.pdf参见下载:http://www2.ad.siemens.com.cn/Download/Upload/AS/application/A0098.pdf

揭东县18056469856: 欧姆龙CJ2M,CPU - 13如何与上位机通信,用的是以太网,不知道是用什么协议? -
务昂瑞新: 1、如上位机支持,可直接采用以太网通讯 2、采用OMRON网关软件FinsgateWay,然后上位机与Finsgateway通讯

揭东县18056469856: s7300之间如何通过以太网通讯 -
务昂瑞新: 打开SIMATIC Manager,根据我们系统的硬件组成,进行系统的硬件组态, 插入2 个S7300 的站,进行硬件组态: 分别组态2 个系统的硬件模块: 设置CP343-1、CP343-IT 模块的参数,建立一个以太网,MPI、IP 地址: 组态完2 套系统的硬件...

揭东县18056469856: 西门子CPU224XP与AB的1769 - L35E怎么通过以太网交换机进行通讯
务昂瑞新: CP243-1 为什么其它厂家的CPU也支持以太网TCP/IP协议,却不能与西门子的CPU用以太网通信? 1一个开放式系统互连是建立在7个协议层上的:应用层、表示层、会话层、传输层、网络层、数据链路层、物理层.一般地,网络中的指定通信...

揭东县18056469856: PC和DSP通过以太网收发数据怎么实现? -
务昂瑞新: 这个可以通过DSP的spi功能连接一个以太网模块,这个模块网上都有卖的,叫ENC28J60模块,他们也会给你这个芯片的驱动程序,你嵌入到DSP程序中就可以和电脑通过以太网通讯了.DSP开发板收到的数据有两个存储方式,如果是断电消失的放在ROM闪存里,如果是断电还保持的可以放在EEPROM里.至于编程注意的问题可多了,各人情况不同,无法概括的说,还得自己摸索.

揭东县18056469856: cpu之间通过以太网怎么通讯 -
务昂瑞新: 是用的343-1网卡模块吗?我这几天做了类似的项目,通过343-1通讯,刚成功.如果装了模块带的光盘,在STEP7文件夹下有个examples,里面的exie工程就是一个以太网通讯的例子,您可以参考一下.另外我这个有个关于通讯的PDF文件,您说下邮箱我可以发给您.

揭东县18056469856: 在S7 CPU中如何进行全局数据的基本通讯?在通讯时需要注意什么? -
务昂瑞新: 全局数据通讯用于交换小容量数据,全局数据(GD)可以是: 输入和输出 标记 数据块中的数据 定时器和计数器功能 数据交换是指在连入单向或双向GD环的CPU之间以数据包的形式交换数据.GD环由GD环编号来标识. 单向连接:某一CPU可以向多个CPU发送GD数据包. 双向连接:两个CPU之间的连接:每个CPU都可以发送和接收一个GD数据包. 必须确保接收端CPU未确认全局数据的接收.如果想要通过相应通讯块(SFB、FB或FC)来交换数据,则必须进行通讯块之间的连接.通过定义一个连接,可以极大简化通讯块的设计.该定义对所有调用的通讯块都有效且不需要每次都重新定义.

揭东县18056469856: 两个S7 - 300 PLC怎样实现CPU之间的以太网通讯请辅导程序说明求解 -
务昂瑞新: 两个300CPU距离1000左右,之间需要进行数据交换,想走两路通讯,DP和以太网互为备用.请附带以太网通讯的程序说明

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网