s7协议通信.docx
《s7协议通信.docx》由会员分享,可在线阅读,更多相关《s7协议通信.docx(7页珍藏版)》请在冰点文库上搜索。
s7协议通信
竭诚为您提供优质文档/双击可除
s7协议通信
篇一:
技术质料_pRoFibuss7通讯协议
一、应用环境:
编程软件simaticnetV6.0sp4,pbsoFtnet-s7
硬件设备:
s7plc、cp5611、pRoFibus网线、pRoFibus总线连接器
二、技术秘密的用途:
实现pc机与simatics7plc之间的通讯。
三、技术秘密的实施过程:
1.示例系统的体系结构
应用
图0
在上位机上插入cp5611通讯卡,plc为s7-300.cpu315-2dp(6es7315-2ag10-0ab0),二者通过pRoFibus总线相连。
2.组态i.
在pc机上安装simaticnetV6.0pcncm并授权pRoFibus-s7后,打开ncm,新建一个工程sample。
图1
插入一个pcstation
此处把站名改为opc
然后双击configuration进入组态画面,如图2
图2
在第一槽插入opcseRVeR(用于实现opc通讯,若需要使用s7-api则需要在第二槽插入一个application),在第四槽中插入cp5611V6.0sp4,插入opcseRVeR和cp5611时,选择swV6.0sp4),即弹出以下对话框[此处设置pRoFibus地址和传输速率]:
点击newsubnetpRoFibus,设置传输速率
上述工作完成后,编译存盘,点击configurenetwork图标,进入组态网络界面
单击opcseRVeR后,出来连接表,如图示第二步(或双击其中一格),建立s7-connection,如图3
图3
篇二:
plc-s7300通讯传输协议
iso-osi参考模型
s7协议
所有simatics7和c7控制器都集成了用户程序可以读写数据的s7通信服务。
s7-400控制器使用sFb,s7-300和c7控制器使用Fb。
不管使用那种总线系统都可以应用这些功能块。
即以太网,pRoFibus和mpi网络中都可使用s7通信。
s7协议服务:
服务属性:
s7协议允许1到64k字节数据的传递。
数据量的大小取决于所使用的服务和硬件。
1)与每种场合的与系统相关的数据块的最大长度相匹配。
2)对于在每种以太网的场合的sFb/Fb与用户数据总长度相匹配。
3)依据于所使用的cpu。
4)在用户程序中必须确认在数据传输过程中数据块没有被修改。
s7协议的优势:
独立的总线介质(pRoFibus,工业以太网(iso或者tcp),mpi)。
可用于所有s7数据区。
一个任务最多传送达64k字节数据。
第7层协议可确保数据记录的自动确认。
大数据量传送时处理器和总线的低负荷,这是因为对simatic通信的最优化。
s7协议可被所有可提供的s7控制器和通信处理器支持。
此外,带有适当的硬件和软件的pc系统也可支持通过s7协议的通信。
tcp协议如果数据用tcp协议来传输,传输的形式是数据流,没有传输长度及信息帧的起始、结束信息。
在以数据流的方式传输时接收方不知道一条信息的结束和下一条信息的开始。
因此,发送方必须确定信息的结构让接收方能够识别。
信息结构可能包含有数据后面的控制字符(如回车),表示信息的结束。
在多数情况下tcp应用了ip(internetprotocol)这就是人们常谈论的"tcp/ip协议".它位于iso-osi参考模型的第四层。
套结字和端口号:
几个进程在多线程操作系统中可同时运行,因此每个进程可提供多种服务。
它们应该能够被单独的寻址。
由于这个原因,特殊的接口,或者端口,在用tcp/ip协议和udp协议的数据通讯中被定义。
这种从主机对主机转换到进程对进程扩展被称为应用多路技术和多路分解技术。
一个站的ip地址和端口号形成了一个套结字,这是整个网络中用户程序的唯一地址。
因此在一个网络中应用一个套结字可以访问一个站的任何一个进程。
在simatic环境下,多个进程或者用户程序在cpu上是不能同时建立。
因此,多个通讯任务可以被同时初始化。
为了方便唯一寻址,需通过连接配置来配置任务。
协议服务:
send/Receive
send/ReceiVe接口被用于激活两个客户站之间的数据传输。
在两个站之间数据的交换是用发送和接收块来完成。
Fetch/write
Fetch/write是从服务器上读取数据或者写数据到服务器的服务。
访问是通过被动的服务器的操作系统且不调用任何的功能块。
在simatics7中,fetch/write服务仅仅完成服务器的功能。
因此,simatics7不能主动激活读写数据。
客户端能够主动激活从s7站中读写数据。
(s7协议通信)数量结构:
tcp协议的优点:
高的通讯速度适合传输中到大的数据量( 篇三:
s7-200ppi通信协议
s7-200ppi通信协议
ppi通信协议是一种主从式的通信协议,上位机即pc机为主,plc为从。
通信开始由计算机发起,plc予以响应。
1)、计算机按通信任务,用一定格式,向plc发送通信命令。
2)、plc收到命令后,进行命令校验,如无误,则向计算机发送数据e5h或F9h,作出初步应答。
3)、计算机收到初步应答后,再向plc发送sddasaFcFcsed确认命令。
这里,sd为起始字符,为10h;da为目的,即plc地址02h;sa为数据源,即计算机地址00h;Fc为功能码,取5ch;Fcs为sa、da、Fc和的256余数,为5eh;末字节ed为结束符,也是16h。
如按以上设定的计算机及plc地址,则发送10、02、00、5c、5e、及16,6个字节的十六进制数据,以确认所发命令。
4)、plc收到此确认后,执行计算机所发送的通信命令,并向计算机返回相应数据。
它的通信过程要往复两次才完成一次的通信,比较麻烦,但较严谨,不易出错。
sdleleRsddasaFcdaspssapduFcsed
sd:
(startdelimiter)开始定界符,占1字节,为68h
le:
(length)报文数据长度,占1字节,标明报文以字节计,从da到du的长度;
leR:
(Repeatedlength)重复数据长度,同le
sd:
(startdelimiter)开始定界符(68h)
da:
(destinationaddress)目标地址,占1字节,指plc在ppi上地址,一台plc时,一般为02,多台plc时,则各有各的地址;
sa:
(sourceaddress)源地址,占1字节,指计算机在ppi上地址,一般为00;
Fc:
(Functioncode)功能码,占1字节,6ch一般为读数据,7ch一般为写数据
dsap:
(destinationserviceaccesspoint)目的服务存取点,占多个字节
ssap:
(sourceserviceaccesspoint)源服务存取点,占多个字节
du:
(dataunit)数据单元,占多个字节
Fcs:
(Framechecksequence)占1字节,从da到du之间的校验和的256余数;
ed:
(enddelimiter)结束分界符,占1字节,为16h
命令类型
1)读命令读命令长度都是33个字节。
字节0~21,都是相同的,为:
“681b1b68020xxc320xx0000000000e00000401120a10”。
而从字节22开始,将根据读取数据的软器件类型及地址的不同而不同。
字节22,表示读取数据的单位。
为01时,1bit;为02时,1字节;为04时,1字;为06时,双字。
字节23,恒0。
字节24,表示数据个数。
01,表示一次读一个数据。
如为读字节,最多可读208个字节,即可设为deh。
字节25,恒0.
字节26,表示软器件类型。
为01时,V存储器;为00时,其它。
字节27,也表示软器件类型。
为04时,s;为05时,sm;为06时,ai;为07时aq;为1e时,c;为81时,i;为82时,q;为83时,m;为84时,V;为1F时,t。
字节28、29及30,软器件偏移量指针(存储器地址乘8),如:
Vb100,存储器地址为100,偏移量为800,转换成十六进制就是320h,则字节28到30这三个字节就是00、03、及20.
字节31、32为Fcs和ed。
返回数据与发送命令格式数据相同,但包含一条数据。
具体是:
sdleleRsddasaFcdaspssapduFcsed
这里的sd、le、ler、sd、sa及Fc与命令含义相同。
但sd为plc地址,da为计算机地址。
此外:
字节16:
数据块占用的字节数,即从字节21到校验和前的字节数。
一条数据时:
字,为06;双字,为08;其它为05.
字节22:
数据类型,读字节为04.
字节23、24:
读字节时,为数据个数,单位以位计,1个字节为08;2个字节为10(16进制计),余类推。
字节25及其后至校验和之前,为返回所读值。
如读Vb100开始3个字节,其命令码为:
681b1b68020xxc320xx0000000000e00000401120a100200030001840003208d16(红色02为字节为单位,03为读3个字节)
681b1b68020xxc320xx0000000000e00000401120a10040001000184000d088416
返回码:
681818680002083203000000000002000700000401FF0400189934568b16
(这里红色99、34、56分别为Vb100、Vb101、Vb102的值)
2)写命令写一个字节,命令长为38个字节,字节0~字节21为:
68202068020xxc320xx0000000000e00000401120a10
写一个字,命令长为39个字节,字节0~字节21为:
68212168020xxc320xx0000000000e00000401120a10
写一个双字数据,命令长为41个字节,字节0~21为:
68232368020xxc320xx0000000000e00000401120a10
字节22~字节30,为写入数据的长、存储器类型、存储器类型、存储器偏移量。
这些与读数据的命令相同。
字节32如果是写入的是位数据,这一字节为03,,其它则为04.
字节34写入数据的位数:
01:
1位,08:
1字节,10h:
1字,20h:
1双字。
字节35~字节40为校验码、结束符。
如果写入的是位、字节数据,字节35就是写入的值,字节36为00,字节37为校验码,字节38为16h、结束码。
如果写入的是字数据(双字节),字节35、字节36就是写入的值,字节37为校验码,字节38为16h、结束码.如果写入的是双字数据(4字节),字节35~字节38就是写入的值,字节39为校验码,字节40为16h、结束码。
如写入qb0=FF,其命令为:
68202068020xxc320xx0000000000e00050501120a1002000100008200000000040008FF8616
如写入Vb100=12,其命令如下:
68202068020xxc320xx0000000000e00050501120a100200010001840003200004000812bF16
plc返回数据e5后,确认写入命令,发送以下数据:
10020xxc5e16
plc返回数据e5后,写入成功。
如写入Vw100=1234,其命令如下:
68212168020xxc320xx0000000000e00060501120a10040001000184000320000400101234Fe16
plc返回数据e5后,确认写入命令,发送以下数据:
10020xxc5e16
plc返回数据e5后,写入成功。
请注意以上红体字的含义。
以上命令如执行成功,则返回
681212680002083203000000000002000100000501FF4716
否则返回:
680F0F68000208320200000000000000008500c316
3)stop命令stop命令使得s7-200cpu从run状态转换到stop状态(此时cpu模块上的模式开关应处于run或term位置)。
计算机发出如下命令:
681d1d68020xxc320xx00000000010000029000000000009505F50524F4752414daa16
plc返回:
e5,同时plc即转为stop状态。
但计算机再发确认报文(10020xxc5e16)
plc将返回:
68101068000208320300000000000100000000296916
到此,才算完成这个通信过程。
4)Run命令run命令使得s7-200cpu从stop状态转换到run状态(此时cpu模块上的模式开
关应处于run或term位置)。
pc机发出如下命令:
68212168020xxc320xx00000000014000028000000000000Fd000009505F50524F4752414daa16
plc返回:
e5,同时plc即转为Run状态。
但计算机再发确认报文(10020xxc5e16)
plc将返回:
68101068000208320300000000000100000000296916
至此,才算完成这个通信过程。
注:
以上介绍的不是西门子发布的正式通信协议,还有其它内容。
建议结合些通信的例子来进行测试。