西门子S7 模拟器使用教程

您所在的位置:网站首页 西门子sax61使用说明 西门子S7 模拟器使用教程

西门子S7 模拟器使用教程

2023-07-23 14:54| 来源: 网络整理| 查看: 265

一、S7协议概述

S7协议是西门子S7系列PLC通信的核心协议,它是一种位于传输层之上的通信协议,其物理层/数据链路层可以是MPI总线、PROFIBUS总线或者工业以太网。

S7以太网协议本身也是TCP/IP协议簇的一员,S7协议在OSI中的位置相当于将物理层和数据链路层之上的协议进行了定义,S7comm的协议栈修改程度更高,在应用层组织的数据经过COTP协议、TPKT协议的进一步处理后,最终通过TCP进行传输。

S7协议与TCP/IP其中的对应关系:

备注:这里的S7模型并不是说S7是独立于TCP/IP的,只是为了标出S7模型下比较有代表性的内容,事实上S7就是TCP的一种定制,是TCP协议簇的一种。

S7 协议工作流程

1、client与server通过socket建立连接,过程是标准的TCP连接方式,这一步完成连接的建立。

2、client发送COTP,请求连接PLC,报文中包含CR Connect Request和Destination TSAP,从而标识出CPU的机架号和槽号。

3、PLC返回COTP,确认连接,报文中包含CC Connect Confirm,此时server已经明确client与哪个CPU进行通讯。

4、client发送S7 Communication给server,报文中包含Setup communication,即通讯请求 server返回S7 Communication给client,报文的ROSCTR为ACK_DATA,有确认的意思,包含了对作业请求的回复。

5、client与server发送交换数据的报文,仍以S7 Communication完成。

注:2-5的步骤中,2与3完成数据传输前连接的功能,4与5则完成连接之后的通讯请求,如果绕过通讯请求的建立,在有TCP时就进行数据交换,服务器一般会直接断连。

S7协议的报文采用封装的形式逐层向下传递。首先在S7报文的前面加上TPKT和COTP报头变成ISO-On-TCP协议报文,然后再添加TCP/IP的报头变成TCP/IP报文,如此层层向下传递最后经过物理层发送到网络中。

网络中接收数据的设备,以相反的顺序依次去掉相应层的报文头,就得到了S7协议的报文。

S7协议的基本传输单位称为:过程数据单元(process data unit,PDU)。每个过程数据单元(PDU)都包括一条命令或者对命令的回复。可以说S7协议是一种命令型的协议,每条命令包括如下几个部分:

报文头(header);参数(parameters);参数数据(parameter data);数据块(data block);

报文头和参数是必须有的,参数数据和数据块根据命令的不同而可选。

比如说:将"数据写入到DB100的起始地址偏移量为4的地方"就是一个命令,在这个命令中:写入、数据、DB100、偏移量4都是该命令的组成部分。

在介绍S7模拟器使用前,我们首先把s7的大概分析如下:

TPKT协议

TPKT(Transport Service ontop of the TCP):通过TCP的传输服务。介于TCP和COTP之间。属于传输服务类的协议,它为上层的COTP和下层TCP进行了过渡。功能为在COTP和TCP之间建立桥梁,其内容包含了上层协议数据包的长度。一般与COTP一起发送,当作Header段。我们常用的RDP协议(remote desktop protocol,windows的远程桌面协议)也是基于TPKT的,TPKT的默认TCP端口为102(RDP为3389),其实它本身为payload增加的数据并不多,主要就是以下几个:

version,1byte,表明版本信息 reserved,1byte,看到这个名字就知道是保留的了 length,2byte,包括payload和这三部分在内的总长度

可以看到,版本号是3号,长度为27,除此之外该层并没有什么有用信息了

COTP协议

COTP协议的全称是(Connection-Oriented Transport Protocol),即面向连接的传输协议,对应于OSI 传输层,从这个名字就可以看出,它的传输必然是依赖于连接的,所以在传输数据前必然有类似TCP握手建立链接的操作。

接下来我们看看具体的流量包:

首先是TCP的三次握手,在192.168.25.146与192.168.25.139间建立了TCP连接,之后是两个COTP的包,注意,这里wireshark为我们标注出了CR和CC,后面的COTP包都是DT,这里的CR和CC其实分别是connect request(请求连接)和connect confirm(确认连接)的,也就是建立连接的过程,之后连接建立成功后,发送DT包,也就是data ,是在发送数据。 (备注:wireshark是网络封包分析软件:下载地址为:https://www.wireshark.org/download.html有兴趣的可以去下载了解一下)

接下来我们看看他们所携带的数据:

可以看到,DT包和连接包有着明显的不同,连接包明显多了一堆内容,这其实是COPT包的两种形态,COTP连接包(COTP Connection Packet)和COTP功能包(COTP Fuction Packet)

首先来看COPT连接包,通过上面的wireshark的分析我们可以看到,主要有以下几个字段:

length,1byte,数据的长度,但并不包含length这个字段(至于为什么这样,不清楚) PDU type,1 byte,标识类型,图中的0x0d即为连接确认的类型,常有的还有 0xe,连接请求 0x0d,连接确认 0x08,断开请求 0x0c,断开确认 0x05,拒绝 DST reference,2byte,目标的引用,可以认为是用来唯一标识目标 SRC reference,2byte,源的引用,同上 option,1byte,可以看到wireshark将8位拆为了前四位和后两位:

前四位标识class,也就是标识类别

倒数第二位对应Extended formats,是否使用拓展样式

倒数第一位对应No explicit flow control,是否有明确的指定流控制

parameter,附加的参数字段,参数可以有多个,每个参数又由以下几个字段构成:

code,1byte,标识类型,主要有:

0xc0,tpdu的size,tpdu即传送协议数据单元,也就是传输的数据的大小(是否和前面的length有重复之处?)

0xc1,src-tsap,翻译过来应该叫源的端到端传输(在完整的TCP/IP协议栈中,这个字段代表的是应用与应用之间的通信,我这里猜测可能是为了),但从西门子给的手册来看,它标记的应该是机架号,可是不管我怎么查,也没有找到wireshark解析出的字符串。那么逆向我们找不到答案,就只能正向来了,在parameter字段的最后我们再来详细说这到底是个啥。

 

0xc2,dst-tsap,同上,之后我们再探索。 length,长度 对应的数据

接着COPT功能包,其实个人感觉这两种包可以归为一种,但是看到文献都是分为两种的,那我们也就划分为两种:

length,1byte,长度。

PDU type,1 byte,图中为0x0f,即为数据传输,此外的type都不太常用。

option,1byte,以位为单位划分:

第一位,标识是否为最后一个数据包(从这可以看出,COPT协议当数据较多时,会分为几个单元传输。

后七位,标识TPDU的number。

到这COPT包我们就算是分析的彻彻底底了。

S7comm协议

分为header 和 parameter以及Data三个部分组成。

header字段的长度,由ROSCTR字段决定。主要是数据的描述性信息,包含长度信息,PDU参考和消息类型常量,最重要的是要表明PDU的类型。

parameter字段长度,随着不同类型的PDU会有不同的参数。

Data:数据,该数据是一个可选字段来携带数据,例如存储器值,块代码,固件数据等。

Header: 

 

 

Protocol id 1 byte,即协议的id,始终设置为0x32。 ROSCTR 1byte,pdu(协议数据单元(Protocol Data Unit))的类型,一般由以下几种:

0x01-job:开工干活的意思,主设备通过job向从设备发出“干活”的命令,具体是读取数据还是写数据由parameter决定。 0x02-ack:确认 确认有没有数据字段。 0x03-ack-data:从设备回应主设备的job。 0x07-Userdata:原始协议的扩展,参数字段包含请求/响应id,(用于编程/调试,SZL读取,安全功能,时间设置,循环读取…)。 Reserved:2byte,保留,始终设置为0x0000。 PDU reference:|pdu的参考–由主站生成,每次新传输递增,用于链接对其请求的响应,Little-Endian(注意:这是WinCC,Step7和其他西门子程序的行为,它可能是随机的生成后,PLC只将其复制到回复中)。 parameter length:参数的长度。 error class:错误类型,像是图中的0x00就是没有错误的意思,而常见的请求错误则是0x85。 error code:错误码,结合错误类型来确定错误,图中的0x00同样是没有错误的意思。 关于具体的错误类型和错误码的信息大家可以自行搜索,因为太多了这里就不再展开说明了。 推荐地址:S7 协议常量 - 简书 (jianshu.com)

Parameter:取决于不同的pdu类型。

下面来看看具体的流量包。

可以看到该pdu为job,也就是主设备在发号施令,而通过parameter可以看到,function是0x04的read,也就是读取数据,item count意思是后续跟了几个item,该pdu就一个,所以为1。

而这个item的结构就有要单独说说了: variable specification,1byte,一般就是0x12。 Length:Length of following address specification,数据的长度。 Syntax Id:符号id,一个标志,决定了一些格式性问题,这里是0x10是Address data S7-Any。 pointer-like DBx.DBXx.x的意思,具体意思我们下面再提,详细的大家还是可以去自己看看,主要就是对于后续的寻址起到了一定的限定。 Transport size: 传输大小,也可以认为是传输类型,在这是4,也就是WORD。 DB number: 就是数据块编号的意思,0就代表要找的东西不在数据块里。 Area: 要操作的“东西”,比如0x82,就是读设备的输出,通过这一位也可以看到,我们要读的数据不在DB里,所以DB number为0,如果为DB的话,这1byte应该为0x84。 Address: 具体的地址,如下图所示,前五位没用到,第六位到第二十一位是Byte地址,最后三位是Bit的地址。

首先,它定义了格式为Address data S7-Any pointer-like DBx.DBXx.x,然后指定了读取的”东西“为设备的输出,读取的大小为word,其实到这里这个pdu的全部信息就已经分析完了,为了更好的理解上面定义的格式,我们还是继续看一下。

它读的DB number是0那么根据格式就是DB0.DBXx.x,而读取的address是Byte为0,Bit为0,也就是DB0.DBX0.0,如果我们指定的”东西“为数据块的话,就按照这种格式读取。这就是格式的意思,再比如说0xb2,描述为Symbolic address mode of S7-1200,实际上格式就是符号地址,就不再是这样的组织形式了。

再来看看上个pdu的相应,这里截图没截到header,header最值得关注的是pdu的类型,这里是0x03,也就是我们之前提到过的对于job的相应部分。 而paramter部分可以看到,function是与job pdu的相同的。Data部分就是传回来的具体数据了,return code是返回码,用来标识job让干活的结果,这里是0xff,代表的是成功的意思,除了这个,还有以下几种: 0x01,硬件错误 0x03,想访问的东西不让访问 0x05,地址越界了 0x06,你请求的数据类型和请求的”东西“的数据类型不一致 接着是data的长度(是真的data的长度,不包含前面),最后就是具体的data了,可以看到,这里读到的是0x0000。

S7协议命令

S7协议的命令有很多,主要包括如下几个类型:

数据读写命令;块访问命令;块操作命令;系统信息命令;PLC控制命令;管理命令;日期时间命令;安全命令;

数据读写命令可以对存储器(I、Q、M、C、T)的数据进行读写访问;

块访问命令可以访问PLC中块(Block)的详细信息;

块操作命令可以对块进行上传、下载、删除等操作;

系统信息命令可以获取系统相关的信息,比如:系统状态列表、CPU信息、序列号等等;

PLC控制命令可以让CPU执行热启动、冷启动、停机、获取CPU状态等等;

管理命令可以创建与CPU的连接、取消连接、设置通信的参数等;

日期时间命令可以读写CPU的日期时间值;

安全命令可以获取CPU的安全等级、发送用于连接的密码、清除当前会话的密码等;

常用的操作类型

read

write

start

stop

setup

write的的攻击可能性最大,直接破坏工控执行机构。

read也可能偷偷读取内容,导致一些生产数据泄露,泄露business机密等,如下:

操作,点类型,长度,DB值,寄存器区,地址值

具体案例分析

工业协议数据流量包分析

可以看到一大堆的协议,不过整体思路还是刚才清晰的,首先是ARP协议去找mac地址(不知道arp的,补一下计算机网络的知识吧……),接着是标准的TCP三次握手,接着是COTP的建立连接(要不以后我叫他两次握手?),接着就到了S7comm和modbus来具体干活了。

思路体现如下:

ARP–>mac地址–>TCP三次握手–>COTP建立连接–>S7comm干活。

我们可以看到这个job和我们之前的并不一样,打开仔细瞧瞧

我们看到parameter中的funtion为0xf0,是建立通信的意思,这其实是和上面的TCP、COPT有些相似的,都是在两个设备之间建立通信,而参数的主要信息是MAX AMQ calling和MAX AMQ called。

下面一个ack_data的pdu自然是相应建立通信的意思了,经过TCP握手、COPT建立连接、S7comm建立通信,这样设备间的通信才正式建立完毕了。

往后的S7comm可以看到是read,也就是在读数据,数据包和上面提到的一样。

二、S7模拟器使用 S7协议通信的角色与模式

S7通信支持两种方式∶

1)基于客户端(Client)/服务器(Server)的单边通信;

2)基于伙伴(Partner)/伙伴(Partner)的双边通信;

客户端(Client)/服务器(Server)模式是最常用的通信方式,也称作S7单边通信。在该模式中,只需要在客户端一侧进行配置和编程;服务器一侧只需要准备好需要被访问的数据,不需要任何编程(服务器的"服务" 功能是硬件提供的,不需要用户软件的任何设置)。

什么是客户端(Client)呢?

客户端其实是在S7通信中的一个角色,它是资源的索取者;而服务器则是资源的提供者。服务器(Server)通常是S7-PLC的CPU,它的资源就是其内部的变量/数据等。客户端通过S7通信协议,对服务器的数据进行读取或写入的操作。

在客户端/服务器模式中,必须由客户端发起询问(query),然后服务器才能应答(reply),服务器端不能主动发起询问请求。

常见的客户端包括∶人机界面(HMI)、编程电脑(PG/PC)等。当两台S7-PLC进行S7通信时,可以把一台设置为客户端,另一台设置为服务器。(这种设置的具体方法我们会在本教程的后续文章中介绍。)

其实,很多基于S7通信的软件都是在扮演者客户端的角色。比如OPC Server,虽然它的名字中有Server。但在S7通信中,它其实是客户端的角色。

客户端/服务器模式的数据流动是单向的。也就是说,只有客户端能操作服务器的数据,而服务器不能对客户端的数据进行操作。

我们经常使用的模式是客户端/服务器模式。

这种模式下,我们通常把PLC作为服务器,而把编程电脑、工控机、触摸屏等作为客户端,比如下面这张图:

PLC也可以作为另一个PLC的客户端,这就是我们常说的S7单边通信,如下图所示:

 

在客户端/服务器模式中,所有的配置都在客户端,服务器不需要任何配置。 

有时候,我们需要双向的数据操作,这就要使用伙伴(Partner)/伙伴(Partner)通信模式。

伙伴(Partner)/伙伴(Partner)通信模式也称为S7双边通信,也有人称其为客户端(Client)——客户端(Client)模式。

在伙伴/伙伴模式中,通信的双方之间都可以主动发起询问,也都可以对伙伴的询问进行应答。

不管是什么名字,该通信方式有如下几个特点∶

1)通信双方都需要进行配置和编程;

2)通信需要先建立连接。主动请求建立连接的是主动伙伴(Active Partner),被动等待建立连接的是被动伙伴(Passive Partner);

3)当通信建立后,通信双方都可以发送或接受数据;

在S7-300中,使用FB12(BSend)/FB13(BRecv)进行发送和接收。当一方调用发送指令时,另一方必须同时调用接收指令才能完成数据的传输。

在伙伴/伙伴通信模式下,主动与另一方建立连接的称为主动方(Active Partner),而另一方就称为被动方(Passive Partner)。

一旦建立连接后,通信双方都可以发送或接收数据,双方都需要进行配置。如下图所示:

S7协议模拟器使用

S7模拟器下载,请移步:

(540条消息) S7协议模拟器和使用说明-网络基础文档类资源-CSDN文库

client 端使用说明

启动 clientdemo,双击clientdemo.exe启动客户端,如下图所示:

IP说明:

在上图IP下输入需要连接的server端IP。

Connect as说明:

在PLC S7300中PG/OP通讯的意思:1、PG就是可连接的最多电脑个数。2、OP是触摸屏一类的数。3、S7是cpu可以连接的下位机硬件数。4、PG默认是1,如果要增加电脑数,需要减小S7,增加PG。

TSAP说明:

只要smart200与上位机进行opc的以太网通讯,或是与西门子s71200 、s7300 s7400直接的s7通讯可以设定。

在弹出的窗口中“查找CPU”,在网络中选择要做OPC通信的PLC,紧接着设置本地和远程的TSAP号。

其中“本地”指的是电脑上S7-200 PC Access SMART,“远程”指的是PLC。

TSAP是Transport Service Access Point的缩写(运输服务接入点),表示的是连接资源的地址。使用S7-200 SMART CPU时TSAP号只能设置下面的值:

02.00 02.01 03.00 03.01 

使用者也不能设置其他的数值,因为设置的其他数值后,不能选择“确认”按钮完成配置。

软件不支持其他数值。

Async mode:通信模式

Polling:轮询模式

Event:事件模式

Callback:回调模式

PDU(协议数据单元)大小

CPU S7 300/400/1200/1500/WinAC - Use Rack/Slot TAB,配置不同的cpu选择后面的rack/slot不同。

"Connect as" is the Connection Type, [PG/OP/S7 Basic]。连接类型为这三种:

Each one is good enough.

S7300  : Rack 0 - Slot 2

S7400  : Depends on the hardware configuration (Rack 0 - Slot 3 should be good)

S71200 : Rack 0 - Slot 0

S71500 : Rack 0 - Slot 0

WinAC  : Rack 0 - Slot See the Station Configuration.

CPU S7200/LOGO 0BA7/LOGO 8 - Use TSAP TAB

S7200  : LocTSAP 4D.57 - RemTSAP 4D.57 (or 02.00 - 02.00)

LOGO   : Depends on Tools->Ethernet Connections of LOGOComfort.

系统信息说明

Catalog:目录

   Order code:订购代码

   Version:版本号

Unit info:单元信息

   Module Type Name:CPU型号

   Serial number:序列号

   Vender copyright:出售版权

   As Name:别名

   Module Name:模块名称

Communication info:连接信息

   Max PDU size:连接信息最大PDU块。

   Max active connection:最大连接数

   Max MPI rate(bps):最大传输速率

   Max comm. Bus rare(bps):通信总线最大传输速率

Data read/write:

数据读取模块:

Area读取数据的位置,DB Number读取的模块哪一个,和server中的DB 1,DB 2,DB3对应。

Start:开始地址

Amount:数量

Wordlen:传输的字符类型。

Read:同步读取数据,Async Read:异步读取

Write:同步写入,Async Write:异步写入。

Multi read/write

多块数据写入或读取。

these function can read/write multiple vars in the same call.the limitation is that the total size cannot exceed the up to 20 vars can be defined, in this demo, for simplicity we use only 5 items. there is no async support for these functions since they are executed in a single telegram exchange.

这些函数可以在同一个调用中读取/写入多个变量。限制是总大小不能超过最多可以定义 20 个变量,在这个演示中,为简单起见,我们只使用 5 个项目。 这些功能没有异步支持,因为它们是在单个电报交换中执行的。

Directory

程序采用结构化程序,把程序分成多个模块,各模块完成相应的功能。结合起来就能实现一个复杂的控制系统。就像高级语言一样,用子程序实现特定的功能,再通过主程序调用各子程序,从而能实现复杂的程序。

在S7-300/400PLC中写在OB1模块里和程序就是主程序,子程序写在功能(FC),功能块(FB)。

      ① FC运行是产生临时变量执行结束后数据就丢失-----不具有储存功能

      ② FB运行时需要调用各种参数,于是就产生了背景数据块DB。例如用FB41来作PID控制,则它的PID控制参数就要存在DB里面。FB具有储存功能

      ③ 系统功能块(SFB)和系统功能(SFC)也是相当于子程序,只不过SFB和SFC是集成在S7 CPU中的功能块,用户能直接调用不需自已写程序。

      ④ SFC与FC不具有储存功能,FB和SFB具有储存功能。

      ⑤ OB模块相当于子程序,负责调用其他模块。如果程序简单只需要OB就可以实现。

用西门子plc编程时,可以用到功能块FB和功能FC(FB、FC都是组织块)资料上说FB与FC都可以作为用户编写的子程序,但两者是有一定区别的,在使用时应注意。

     FB--功能块,带背景数据块 

     FC--功能,相当于函数 

     他们之间的主要区别是:FC使用的是共享数据块,FB使用的是背景数据块。

举个例子,如果您要对3个参数相同的电机进行控制,那么只需要使用FB编程外加3个背景数据块就可以了,但是,如果您使用FC,那么您需要不断的修改共享数据块,否则会导致数据丢失。FB确保了3个电机的参数互不干扰。

      FB,FC本质都是一样的,都相当于子程序,可以被其他程序调用(也可以调用其他子程序)。他们的最大区别是,FB与DB配合使用,DB中保存着FB使用的数据,即使FB退出后也会一直保留。FC就没有一个永久的数据块来存放数据,只在运行期间会被分配一个临时的数据区。

在实际编程中,是使用FB还是FC,要看实际的需要决定。

      FB与FC没有太大的差别,FB带有背景数据块,而FC没有。所以FB带上不同的数据块,就可以带上不同的参数值。这样就可以用同一FB和不同的背景数据块,被多个对象调用。FC和FB像C中的函数,只不过FB可以生成静态变量,在下次函数调用时数据可以保留,而FC的变量只在调用期内有效,下次调用又重新更换。

      这是一般的理解;FB需要背景数据块,而FC是没有的;参数的传递方式不同,FB的输入输出对应着背景数据块地址,而FC的输入输出是没有实际地址对应的,只有的程序调用时,才会和实际的地址产生对应关系。FB参数传递的是数据,FC参数传递的是数据的地址。

      FB(功能块)的处理方式是围绕着数据块处理数据,他的入口参数和出口参数都是数据块里的数据,以及STAT的数据都是数据块里,入口参数和出口参数、STAT可以认为是静态数据,这些数据不会因为函数消失而逝去,他会一直保存在数据块里。FB里的变量与他的背景数据块是一一对应的,而他的对应并不是一层不变的。

      更确切的说,FB里的变量在调用时将根据AR2的值当作偏移量与背景数据块是一一对应。如果一个FB功能块里没有入口参数、出口参数及STAT数据,他将不需要背景数据块,这时的FB和没有入口出口参数的FC就没有什么区别了,就只能使用临时变量和全局变量了。

      用很多人认为,FB的背景数据块必须由FB生成、FB里的第一个变量对应着背景数据块的第一个变量,还有就是由FB生成的数据块只能作为FB的背景数据块使用。其实这些理解是错误的,FB的背景数据块不一定是通过FB生成的,可以像生成共享数据块一样生成FB的背景数据块。

      换句话说,普通的数据块也可以作为FB的背景数据块,不过这种做法是有一定前提的,就是这个数据块的字节数必须大于等于FB所需的字节数,如果小于FB所需的字节数时,FB访问到超出背景数据块的变量时就会找不到变量的地址,肯定会出错了。FB里的第一个变量对应可以对应数据块字节数减去FB所需背景数据块字节数里的任意位置的变量。

Block-UP/DownLoad

Block type:模块名称,Block Number:模块编号

Delete from AG:删除数据从网关。AG (Access Gateway接入网关)

Full Upload:全部上传,Upload:同步上传,Async Upload:异步上传

DownLoad:同步下载,async Download:异步下载

Save to file: 保存到文件

Load from file:加载文件

Block-DB get/fill

整块输进去DB的数据获取或者上传填充。

DB Number:要获取/填充的数据块的编号。

DB Dump:获取的数据块的大小

DB Get:同步获取数据

Async DB Get:异步获取数据

Fill Char:要填充的数据

Fill:同步对server端数据进行填充。

Async Fill:异步对server端数据进行填充。

Read SZL

读取SZL说明文档: 西门子S7comm协议Read SZL解析 – 绿盟科技技术博客

Refresh List:刷新SZL ID的列表。

List Of All SZL ID是:112——表示SZL的列表,数字位有多少个SZL ID。

ID位SZL的ID号,Index为SZL-index的值。

SZL Dump:228 bytes下面的列表中表示当前szl-ID和SZL-Index联合后取出来的值。

在左边的SZL-ID列表中双击ID号,可以获取到这个ID号和Index组合后获取的值。

Read SZL:同步从server端读取SZL中的值。

Async Read SZL:异步读取SZL的值。

Date/Time

PG,Programmer的编写,编程器,或者是西门子编程电脑

PC,Personal Computer,就是电脑

在西门子软件中的经常出现PG/PC这个字眼,不用怕,其实指的就是自己正在使用的编程电脑。

Set PG/PC Interface,即设置自己所用的电脑的接口,用什么接口与设备去连接。

PG/PC Station,就是配置自己电脑成一个站点。

PG/PC date and time:编程电脑上的日期和时间。

CPU Date and Time:CPU的日期和时间。

Get date and time of PG/PC:从编程电脑上获取日期和时间。

Set Date and Time:设置日期时间。

control

西门子PLC 冷启动、暖启动、热启动的一种通俗解释_田凫。的博客-CSDN博客_暖启动热启动冷启动

获取系统的状态

Get status:获取CPU的运行状态。状态位run或者stop.

正常情况下,S7-CPU具有以下操作模式:

●STOP(停止): CPU 处于“STOP”操作模式时,不执行用户程序。

●STARTUP(启动):接通 CPU 后,先执行启动程序再执行用户程序。 有“暖启动”、“热启动”和“冷启动”三种启动模式,本文详述。用户可指定S7-CPU上电时的启动类型。

●RUN(运行):CPU 执行用户程序、更新输入和输出、并处理中断和错误消息。

●HOLD(暂缓):CPU暂停执行用户程序,适用于设备调试时。

Cyclic refresh:持续刷新获取CPU状态。

Stop:给server端发送停止CPU运行的指令。

Hot Restart:热启动

Cold Restart:冷启动

Copy Ram to Rom: 把闪存的数据拷贝到只读存储器中.同步方式。

Async Copy Ram to Rom: 把闪存的数据拷贝到只读存储器中.异步方式。

Timeout:超时时间。

Compress:同步进行cpu内存压缩。

Async Compress:异步方式的内存压缩。

Security

Selector Protestion level:选择防护级别,读写,只读。

Params protection level:参数防护级别,没有密码,选择器密码,写密码,读写密码。

CPU Protection level:CPU防护级别,unknown,Access grant授权访问,Read only只读,read/write password读写密码。

推荐几个有用的协议网站:

开源通信库snap7:http://snap7.sourceforge.net/ S7 wireshark解析器:https://sourceforge.net/projects/s7commwireshark/ S7捕获包:https://github.com/gymgit/s7-pcaps PLC4X: http://plc4x.apache.org/protocols/s7/index.html



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3