可优化访问的数据块
使用块的优化访问方式西门子博途

离S7-1500 在中国正式发布,已经快3年时间了,这款新控制器除了包含多种创新技术之外,还设定了新标准,最大程度提高生产效率;块的“优化访问方式”是这款控制器的一个创新之处当我们新建一个OB,DB,FB,FC时有个块的属性叫“优化访问”这个属性默认是使用的;S7-1200/1500 具有优化的存储空间,在优化的块里面,变量的地址由CPU自己管理,这样使变量之间的地址间隙最小化;但是使用优化块的访问方式,比如DB,大家会发现变量的偏移地址消失了,没有偏移地址也就意味着,间接寻址不在适用了;为什么西门子,要如此颠覆大家的使用习惯了下面,就引用官方说法吧;优化块具有以下优点1:最快的存取速度,个人理解就是标准块,就像用了很久的电脑硬盘一样,碎片化了;而优化块就像是经过磁盘整理程序整理过的电脑磁盘;2:变量可以单独设置是否是“保持Retain”3:数据块预留一定的空间,这样重新下载数据块时,数据实际值,不会丢失;4:变量声明的改变不会导致访问出错,比如,HMI访问PLC变量时全是符号访问,不涉及到地址;5:背景数据块无需任何设定,所有的设定都是在相关的FB里设定比如数据是否保持那么,标准访问方式和优化访问方式下,数据块的存储空间有什么不同了,请看下图;优化块的访问方式下,数据块里的地址分配是什么样子的了1:通过将占用地址空间多的变量放在前面,占用存储空间少的变量放在后面这样的存储方式来尽可能减少数据间隙;2:具有保持属性的变量单独存放在一个区域;3:布尔类型数据单独占用一个字节的空间,从而加快的访问速度;由于S7-1500处理器架构的改变,S7-1500采用little-endian方法来存取数据;S7-300/400采用big-endian方法来存取数据,所以为了兼容S7-300/400,在标准访问方式下数据处理采用big-endian方法;1:标准块中,CPU需要216 位的方式来去读一个4字节的数据,所以需要调换字节顺序;优化块中是以32位的方式来存取一个4字节的数据;2:优化块,每个位单独占据一个字节的内存,这样来加快存取速度;3:优化块可以到达16M的大小所以,西门子给出了以下建议如果不需要使用间接寻址的情况下,仅使用优化块的访问方式;而且在S7-1500平台下,可以使用符号变量来实现间接寻址,比如array “index”,以前在S7-300+STEP7 平台下只有SCL语言才能使用的语句,在STEP7 PORTAL 中LAD,STL等都可以这样来使用了;避免,在标准块和优化块中拷贝和传递数据,因为存储数据方法的不同,系统会自动调整访问方式,但是需要占用更多的CPU资源;在标准块中,变量的“保持”属性不可单独设定,只能应用于整个数据块,而优化块可以单独设定变量的“保持”属性;标准块和优化块的访问类型让不少同行不习惯使用优化块访问方式的是优化块不能使用“间接寻址”,在STEP7时代,使用STL的间接寻址功能,大家可以很方便灵活地编写出各种程序;但是,不使用间接寻址就不能写出好程序了吗当然不是,我最早接触指针的是在大学里的C语言中,但是目前的,随平台一起出现的C语言不是一样不推荐使用指针了嘛只能在非安全代码里使用指针,就像S7-1500可以在标准块里使用指针一样,但是C依然可以做出好的程序;而干脆没有指针的概念;在CPU/CM接口间通信也可以使用优化数据块的数据,这一点,我当初也是怀疑,但是在一遍文档中找到了证据其实还是有些怀疑在S7-1500和S7-300之间通信,在S7-1500测使用优化块的访问,会不会有些问题,有时间为会实践一下除了DB,FB,FC,OB也可以使用优化块的访问方式;在优化OB中,临时变量将被缩减,比如OB1,以前有很我们经常用到的三个临时变量OB1_PREV_CYCLE上一次扫描时间OB1_MIN_CYCLE最小扫描时间OB1_MAX_CYCLE最大扫描时间在优化访问方式下,被缩减了,但是仍然有其它方法读取CPU扫描时间;1:采用调用RUNTIME ,在OB1开始和结束处调用该指令,2者的结果相减即可,该指令还可以用于测量任何语句和程序块执行所用的时间;2:调用RT_INFO函数通过模式1、2、3可以读出CPU的上次扫描、最小、最大扫描时间使用块的优化访问方式,体现了标签化,符号化的编程风格就像一些语言,我们不关心变量存放在计算机内存的什么地方;在TIA PORTAL中,FB,OB,FC的编号也支持CPU由自己管理了;在新建FC,FB等程序块时,会出现一个关于程序块编号的选项,自动还是手动,自动时,程序只需要新建程序块,定义程序块名称即可,至于是FB109还是FB1099程序员不要关心,当然程序员还可以按照以前的习惯手动个程序块一个编号;在TIA PORTAL中程序块下面可以自己新建文件夹,这样把相关的程序块和数据块进行分类分组,而不像STEP7 下所有程序块数据块全在Blocks一个文件夹下,这样程序结构看的更清晰;块的优化访问,程序块编号由CPU自己管理,UDT的编号也由CPU来管理,体现了标签化的编程方式个人理解,以前一些由程序员来做的工作,现在全部托管给CPU也在一定程度上让编程变的更简单,适应了当今潮流;本人由于工作需要学习了一段时间的GE PACSystem的PLC编程,相对以前GE-Fanuc的90-30,90-70系列PLC,PAC平台下,它们的编程风格也是完全标签化除了一些过程映像区和R区等,程序块也是仅靠名称,干脆没有所谓的编号;标签变量也是没有偏移地址的,一些间接寻址也仅靠array “index”的方式来处理,但是同样可以编写出和西门子一样的程序实际上自己就是按照西门子程序进行转换的;所以,对于S7-1500和TIA PORTAL一些创新的地方,我们应该勇于接受,抛弃旧思维,来对待新事物提示:本文来源自西门子工业支持技术论坛的文章,如有侵权,请联系百度账号以删除;。
组态控制技术智慧树知到答案章节测试2023年威海海洋职业学院

项目一测试1.人机界面的功能主要有()。
A:对运行数据和报警信息进行记录等多种功能。
B:工作人员通过界面可以操作和监测机器的工作过程;C:可以实现控制过程中各种数据的实时、可视化直观显示;D:可以对机器设备超出正常运行的状态进行报警;答案:ABCD2.西门子触摸屏分类主要有()。
A:增强型面板;B:移动面板。
C:基本型面板;D:基于PC的增强型HMI设备;答案:ACD3.精智面板具有如什么特点()。
A:4到22英寸可调背光宽屏显示B:集成电源管理功能C:触摸式或按键式操作,最大视角可达170°D:集成系统存储卡,实现数据自动备份答案:ABCD4.博途中WINCC组态软件有几种版本()。
A:Comfort版本B:Basic版本C:Professional版本D:Advanced版本答案:ABCD5.设备向导提供了多种添加或删除画面的方式。
()A:错B:对答案:B项目二测试1.画面模板的特点主要有()。
A:模板位于工程画面的后端;B:可以创建多个模板并给不同的画面分配不同的模板;C:也可以不为画面分配模板。
D:在模板中组态的对象显示在使用此模板的所有画面中;答案:ABCD2.IO域模式几种类型主要有()。
A:输入输出型;B:混合类型。
C:输出型;D:输入型;答案:ACD3.HMI中按钮实现自复位按钮功能,事件函数如何设置()。
A:选择单击,其事件函数选择编辑位中的复位位函数B:选择单击,其事件函数选择编辑位中的取反位函数C:选择释放,其事件函数选择编辑位中的复位位函数D:选择按下,事件函数选择编辑位中的置位位答案:CD4.S7-1200和S7-1500也可以组态为非集成连接,数据块无需取消优化的块访问选项。
()A:对B:错答案:B5.层号为()的元素显示在画面最上层。
A:3B:0C:2D:1答案:A项目三测试1.使用棒图组件时,可以修改哪些属性()。
A:颜色转变;B:显示限制标记;C:定义棒图分段;D:定义比例尺分级。
S7-1200 PLC应用教程第6章

2.组态智能设备通信的传输区 IO设备的传输区(I、Q地址区)是IO控制器与智能IO设备的用户程序之间 的通信接口。通信双方用组态的Q区发送数据,用组态的 I 区接收数据。IO 控制器与智能IO设备之间通过传输区自动地周期性地进行数据交换。 选中网络视图中PLC_2的PN接口,然后选中巡视窗口的“属性 > 常规 > 操 作模式 > 智能设备通信”,双击右边窗口“传输区”列表中的<新增>,在第 一行生成“传输区_1”。
化领域、实时自动化领域和同步实时通信。
PROFINET支 持 故 障安全 通 信 的标准 行 规 PROFIsafe 和驱 动器 配 置 行规
PROFIdrive。
3.PROFIBUS PROFIBUS是开放式的现场总线,传输速率最高12Mbit/s,最多可以接127 个从站。PROFIBUS提供了下列3种通信服务: 1) PROFIBUS-DP (分布式外部设备)用于PLC与分布式I/O(例如ET 200) 的通信。主站之间的通信为令牌方式,主站与从站之间为主从方式。 2)PROFIBUS-PA(过程自动化)用于过程自动化的现场传感器和执行器的低
6.3 基于以太网的开放式用户通信 S7-1200/1500的CPU集成的PROFINET接口是10M/100Mbit/s的RJ45以太网口,
可以使用标准的或交叉的以太网电缆。支持TCP、ISO-on-TCP、UDP和S7通信。 1.开放式用户通信 基于CPU集成的PN接口的开放式用户通信用函数块建立和断开通信连接,
LABVIEW与S7-1200网口通讯

点击“Click to add a device”,添加一个设备,填写设备名称,点击“Next”
选择“S7-1200”,点击“Next”
填写S7-1200的IP地址,点击“Next”
选择扫描模式,保持默认即可,点击“Next”
填写通讯时间参数,保持默认即可,点击“Next”
通讯失败处理,保持默认即可,点击“Next”
LABVIEW与S7-1200网络通讯
TCP open通讯
PLC项目建立
打开TIA Portal编程软件,新建一个项目,添加新设备,注意设备型号和版本必须选择正确
TCP open通讯
PLC设置网络及IP地址
设备组态中,添加新子网,设置PLC的IP地址。本文按默认值192.168.0.1。
TCP open通讯
Labview与S7-1200之间OPC通讯
一、配置计算机IP地址
Labview与S7-1200之间OPC通讯
二、建立S7-1200项目及硬件选择
通过博图,在PLC CPU的属性-常规-保 护里,勾选“允许从 远程伙伴使用 PUT/GET通讯访问”
Labview与S7-1200之间OPC通讯
新建一个全局数据块(如DB1),在数据块(如DB1)中新建一个变量,例如:名 称为“ASD”,“ZXC”,数据类型选择为“Word”
TCP open通讯
连接3个函数。打开TCP连接函数的IP和端口为PLC的IP和端口,一定填写正确,否则不可 能建立与PLC的连接。读取TCP数据函数的数据长度,比PLC发送数据的长度长一点即可
TCP open通讯
点运行,这时数据输出中没有任何数据,这是因为PLC中的发送还没有被触发的缘 故。闭合触发触点(本例中为I0.0),则立刻接收到了数据!说明通信成功!
S7-1200_ModbusTCP_Communication_Getting_Start

10/CN/view/zh/81015512C o p y r i g h t ãS i e m e n s A G C o p y r i g h t y e a r A l l r i g h t s r e s e r v e d 目录1 Modbus TCP 通讯概述.......................................................................................... 31.1通讯所使用的以太网参考模型 . (3)1.2 Modbus TCP 数据帧 (3)1.3 Modbus TCP 使用的通讯资源端口号 (3)1.4 Modbus TCP 使用的功能代码 (3)1.5 Modbus TCP 通讯应用举例 (4)2 SIMATIC S7-1200 Modbus TCP 通讯概述 (4)3配置 S7-1200 CPU 作为Modbus TCP Server 与通信伙伴建立通讯 (5)4配置 S7-1200 CPU 作为Modbus TCP Client 与通信伙伴建立通讯 (9)C o p y r i g h t ãS i e m e n s A G C o p y r i g h t y e a r A l l r i g h t s r e s e r v e d 1 Modbus TCP 通讯概述MODBUS/TCP 是简单的、中立厂商的用于管理和控制自动化设备的MODBUS 系列通讯协议的派生产品,显而易见,它覆盖了使用TCP/IP 协议的“Intranet”和“Internet”环境中MODBUS 报文的用途。
协议的最通用用途是为诸如PLC’s ,I/O 模块,以及连接其它简单域总线或I/O 模块的网关服务的.1.1通讯所使用的以太网参考模型Modbus TCP 传输过程中使用了TCP/IP 以太网参考模型的5层:第一层:物理层,提供设备物理接口,与市售介质/网络适配器相兼容第二层:数据链路层,格式化信号到源/目硬件址数据帧第三层:网络层,实现带有32位IP 址IP 报文包第四层:传输层,实现可靠性连接、传输、查错、重发、端口服务、传输调度第五层:应用层,Modbus 协议报文.1.2 Modbus TCP 数据帧Modbus 数据在TCP/IP 以太网上传输,支持Ethernet II 和802.3两种帧格式,Modbus TCP 数据帧包含报文头、功能代码和数据3部分,MBAP 报文头(MBAP 、Modbus Application Protocol 、Modbus 应用协议)分4个域,共7个字节.1.3 Modbus TCP 使用的通讯资源端口号在Moodbus 服务器中按缺省协议使用Port 502通信端口,在Modus 客户器程序中设置任意通信端口,为避免与其他通讯协议的冲突一般建议2000开始可以使用.1.4 Modbus TCP 使用的功能代码按照使用的通途区分,共有3种类型分别为:1)公共功能代码:已定义好功能码,保证其唯一性,由 认可;2)用户自定义功能代码有两组,分别为65~72和100~110,无需认可,但不保证代码使用唯一性,如变为公共代码,需交RFC 认可;3)保留功能代码,由某些公司使用某些传统设备代码,不可作为公共用途。
工控安全入门(二)——S7comm协议

⼯控安全⼊门(⼆)——S7comm协议在上⼀次的⽂章中我们介绍了施耐德公司的协议modbus,这次我们把⽬标转向私有协议,来看看另⼀家巨头西门⼦的S7comm。
⾸先要说明,这篇⽂章中的内容有笔者⾃⼰的探索,有⼤佬们的成果,但由于S7comm是私有协议,⼀些结论和看法不可能完全正确,希望各位有认为不对的地⽅或是更好的看法可以评论告诉我。
ps:有些专业名词可能不对,因为没找到准确的翻译或者是根本没找到官⽅定义(毕竟是私有协议),笔者就⾃⼰起了名……建议阅读本篇前⾸先阅读:S7comm简介西门⼦是德国的⼀家超⼤型企业,在能源、⼯业、医疗、基建等等⽅⾯都有它的⾝影,同时它也位列全球500强第66名。
作为⼀个以电报起家的⼤型企业,它对于通信更是重视,S7comm就是西门⼦为了它⽣产的PLC之间、SCADA与PLC之间的通信⽽设计的专属协议。
和Modbus的应⽤层协议不同,S7comm的协议栈修改程度更⾼,在应⽤层组织的数据经过COTP协议、TPKT协议的进⼀步处理后,最终通过TCP进⾏传输,下⾯是wireshark wiki给出的S7comm的协议栈:OSI layer ProtocolApplication Layer S7 communicationPresentation Layer S7 communication(COTP)Session Layer S7 communication(TPKT)Transport Layer ISO-on-TCP (RFC 1006)Network Layer IPData Link Layer EthernetPhysical Layer Ethernet我们说的题⽬虽然是对S7comm的分析,实际上是对整个协议栈的探索。
鉴于数据包逻辑上是由⾼层进⾏封装再⼀步步的转递给较低层,但我们接收到包后是低层⼀层层拆卸交给上层,基于逆向思维,我们之后的分析应该是由低向⾼展开的TPKT协议我相信⼤家对于传输层往下的内容应该⽐较熟悉了,都是TCP/IP的基本内容,我就不再赘述,直接从会话层来看。
西门子S7-1200数据块的使用

西门子S7-1200数据块的使用硬件环境:S7-1200 CPU V2.0(6ES7214-1AE30-0XB0)软件环境:(1)Windows 7 Professional SP1 64位(2)STEP7 V11 SP2步骤1. 创建DB块:在项目中添加了S7-1200设备之后,在项目树中此PLC的"程序块"下即可以添加新的数据块。
图1 DB块的创建在打开的"添加新块"窗口下选择数据块。
以下是对此窗口下各项配置的说明:名称:此处可以键入DB块的符号名。
如果不做更改,那么将保留系统分配的默认符号名。
例如此处为DB块分配的符号名为“Data_block_2”;类型:此处可以通过下拉菜单选择所要创建的数据块类型-全局数据块或背景数据块。
如果要创建背景数据块,下拉菜单中列出了此项目中已有的FB供用户选择。
语言:对于创建数据块,此处不可更改。
编号:默认配置为“自动”,即系统自动为所生成的数据块配分块号。
当然也可以选择“手动”,则“编号”处的下来菜单变为高亮状态,以便用户自行分配DB块编号。
块访问:默认选项为“已优化”,当选择此项时,数据块中的变量仅有符号名,没有地址偏移量的信息,该数据块仅可进行符号寻址访问。
选择“已优化”创建数据块可优化CPU 对存储空间的分配及访问,提升CPU性能;用户也可以选择“标准-与S7-300/400兼容”,获得与S7-300/400数据块相同的特性,数据块中的变量有符号名和偏移量,可以进行符号访问和绝对地址访问。
注意:数据块的块访问属性只能在创建数据块时定义。
创建完成后无法修改数据块的访问。
S7-1200 Modbus TCP 通信(S7-1200 作 MODBUS TCP客户端)

S7-1200 Modbus TCP 通信(S7-1200 作MODBUS TCP客户端) STEP 7 V13 SP1 软件版本中的Modbus TCP 库指令目前最新的版本已升至V4.0,该版本的使用需要具备以下两个条件:1. 软件版本:STEP 7 V13 SP1及其以上2. 固件版本:S7-1200 CPU 的固件版本V4.1及其以上图1. Modbus TCP V4.0 版本指令块S7-1200 Modbus TCP 实验环境下面以两台S7-1200之间进行Modbus TCP 通信为例,详细阐述客户端与服务器侧如何编程及通信的过程。
表格列出了具体的实验环境:表1. Modbus TCP 通信的实验环境表2. Modbus TCP 通信双方的基本配置硬件标识符是在“设备组态”中,双击PROFINET 接口,然后在“属性”中的“硬件标识符”中查看。
图2. S7-1200设备的PROFINET接口硬件标识符S7-1200 Modbus TCP 客户端编程S7-1200 客户端侧需要调用MB_CLIENT指令块,该指令块主要完成客户机和服务器的TCP连接、发送命令消息、接收响应以及控制服务器断开的工作任务。
1. 将MB_CLIENT 指令块在“ 程序块-> OB1 ”中的程序段里调用,调用时会自动生成背景DB ,点击确定即可。
图3. Modbus TCP 客户端侧指令块该功能块各个引脚定义如下:表4. MB_CLIENT 各引脚定义说明2. CONNECT 引脚的指针类型第一步,先创建一个新的全局数据块DB2:图4. 创建全局数据块第二步,双击打开新生成的DB块,定义变量名称为“aa",数据类型为“TCON_IP_v4”(可以将TCON_IP_v4 拷贝到该对话框中),然后点击“回车”按键。
该数据类型结构创建完毕。
如图5所示:图5. 创建MB_CLIENT 中的TCP连接结构的数据类型各个引脚定义说明如下:表4. TCON_IP_v4 数据结构的引脚定义本文远程服务器的IP地址为192.168.0.4,远程端口号设为502。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
可优化访问的数据块
可优化访问的数据块没有固定的定义结构。
在声明中,仅为数据元素分配一个符号名称,而不分配在块中的固定地址。
这些元素将自动保存在块的空闲内存区域中,从而在内存
中不留存储间隙。
这样,可以提高内存空间的应用率。
在这些数据块中,变量使用符号名称进行标识。
要寻址该变量,则需输入该变量的符号名。
例如,可通过以下方式访问“Data”数据块中的“Fill Level”变量:
"Data".Fill Level
可优化访问的数据块具有以下优势:
∙可以使用任意结构创建数据块,而无需在意各个数据元素的物理排列方式。
∙由于数据的存储方式已优化并由系统进行管理,因此可快速访问经优化的数据。
∙不会放生访问错误,如,间接寻址或 HMI 进行访问。
∙可以将指定的单个变量定义为具有保持性。
∙默认情况下,优化块具有一个预留存储区,可以在操作过程中对函数块或数据块的接口进行扩展。
无需将 CPU 设置为 STOP 模式,即可下载已修改的块,而不会影
响已加载变量的值。
可标准访问的数据块
可标准访问的数据块具有固定的结构。
数据元素在声明中分配了一个符号名,并且在块
中有固定地址。
地址将显示在“偏移量”(Offset) 列中。
这些数据块中的变量既可以使用符号寻址,也可以使用绝对地址进行寻址。
"Data".Fill Level
DB1.DBW2
为优化访问或标准访问设置保持性
如果将数据定义为具有保持性,则在发生电源故障或网络断开时,也可以保留这些数据的值。
在热启动后也不会对保持型变量进行初始化,而是保持电源发生故障之前的值。
如
果将一个数据块变量定义为具有保持性,则该变量将存储在数据块的保持性存储器区域中。
设置保持性的选项取决于块的访问类型。
∙对于可标准访问的数据块,不能定义各变量的保持性。
保持性设置对于该数据块的所有变量均有效。
∙对于可优化访问的数据块,可以定义各个变量的保持性。
对于结构化数据类型的变量,保持性设置将始终应用于整个结构。
无法对数据类型中的各个元素进行任何单独的保持特性设置。
为优化访问或标准访问设置寻址选项
可优化访问的数据块只能进行“类型安全”访问。
类型安全访问只能通过变量的符号名称进行寻址。
这意味着即使块或块接口发生更改,也不会导致程序中存在不一致或发生访问错误。
下表列出了经优化数据所允许的寻址方式:
寻址可标准访问的块可优化访问的块符号寻址√√
ARRAY 的索引寻址√
片段访问√√
使用 AT 进行覆盖√-
绝对寻址√-
通过 ANY 进行间接寻址√-
通过 POINTER 和 VARIANT 进行间接寻址√仅使用符号表示。