修改DB块的初始值

合集下载

西门子S7 -1200 PLC程序结构分析

西门子S7 -1200 PLC程序结构分析

西门子S7 -1200 PLC程序结构分析很多从日系PLC或者200PLC过来的人,很不习惯于S7 1200 或者TIA PORTAL 里面的一些专业术语,比如OB,DB,FC,FB等等,其实这些术语也包含于S7 300,400 ,1500等,所以今天讲解的内容,理论上也适应于这些PLC。

虽然我没有玩过这些东西,但是TIA PORTAL适合于西门子全系列PLC,很多概念性的东西都是一致的。

S7 1200的功能强大正式基于拥有各种类型的block和多种变量类型。

我会用不一样观点来讲述PLC编程,相比于很多普通的PLC教程,你会发现很多有趣的地方。

S7 1200 由以下几类基本元素组成:OB:组织块,英文名Organization block。

组织块是CPU系统和用户程序之间的接口,可以在CPU上电启动时调用,也可以循环调用,也可以在PLC发生错误时候调用。

DB:数据块,英文名Data block。

从字面含义便知主要用于储存用户数据,比如模拟量转换数据,相当于200里面的V区,欧姆龙PLC的W区。

FC:函数,英文名Function。

我们常常在FC函数中写一些需要重复执行的代码,可以在程序不同地方调用,可以被OB调用,也可以被FC调用。

使用FC可以简化我们需要重复执行的任务,提高代码的运行效率。

FC类似于200的子程序。

FB:FC+DB组合,意思是含有DB块的FC函数,与FC的区别是当函数调用结束后,通过Static变量仍然可以保留数值,经常用于调用间的数据共享。

OB组织块当我们新建一个程序时,系统会自动建立一个Main[OB1]程序,该程序会在PLC的每个扫描周期被调用。

Main程序和200里面的主程序,是一个同样的概念。

也类似于C里面的Main ,即为函数入口点,我们可以在Main 程序里面调用各种函数和块。

下面的图是在程序中调用一个FC和FB,然后在FC中调用另外一个FC,形成嵌套调用。

注:、、、是别名,方便我们记忆和理解,真正的地址在[.....]中,如OB1,FC2,FC1,FB1等等。

在STEP7程序中如何进行DB数据块的初始化

在STEP7程序中如何进行DB数据块的初始化

初始值设置:当您在数据块里已经定义了变量及其数据类型,并且不想让软件使用默认值,那么您可以在Initial Value这一栏里输入您需要的合适数值。

如果您在actual value栏里面没有进行设置,则您设置的初始值就会作为实际值下载到PLC中去。

但是这个步骤程序只会在变量第一次生成执行一次,以后您再修改初始值,都不会影响实际值,除非您再进行数据的重置。

注意:只有实际值才会被下载到PLC中,一般您在英文手册中看到的current value都是指Actual value。

只有在Data View的模式下,您才能修改实际值中的数据。

FAQ:1.在STL语句表源程序中进行初始值设置:/WW/view/en/11486603DATA_BLOCK DB 10TITLE = DB Example 10STRUCTaa : BOOL := FALSE; <- 将初始值设置为布尔型bb : INT:= 1500; <- 将初始值设置为整型cc : WORD := W#16#abcd; <-将初始值设置为word型END_STRUCT;BEGIN // 设置实际值aa := TRUE;bb := 3000;END_DATA_BLOCK注意:数据块下载后,变量aa值为TRUE,bb为30002.我怎样将在程序中将特定的初始值预置到数据块中?/WW/view/en/15399291回答:综合起来,一共有2个功能块可以预置初始值。

1)使用SFC21”FILL”,SFC 21的管脚说明:Declaration Name Type DescriptionIN BVAL ANY Value or description of the field the contents of which are to be assigned to the target field.OUT RET_VAL INT If an error occurs during processing of the function, the return value includes an error code.OUT BLK ANY Description of the field that is to be pre-assigned (target field)2)使用FC1"INIT_LOOP" (FC 1)的管脚说明: Declaration Name Type DescriptionIN DB_NR INT DB number of the DB to be initialized (e.g. 1)IN START_ADDR INT Initialization starts from this data byte (e.g. 10)IN LEN_INI INT Number of bytes to be initialized (e.g.10)IN DB_WERT_INI BYTE The data is initialized with this value(e.g. 99)OUT ERR BOOL ERROR!: e.g. DB no. is invalid, length is invalidFC1这个功能块可以检测要设置的DB块是否在,参数长度是否有效。

Step7下DB数据块导入导出EXCEL

Step7下DB数据块导入导出EXCEL

Step 7 5.5 下DB数据块导入导出及DB当前值存储为默认值
1、导出DB数据块
打开一个DB块
生成源文件
输入文件名DB5,确认
选中你要导出的DB块
在Source> DB5>右键>导出源文件
在“导出源文件”对话框中确定源文件导出文件类型,选择“STL source (*.awl)”作为文件类型且文件名中必须包含扩展名“.AWL ”。

2、打开AWL文件
打开excel软件,在excel软件中选择打开命令(选择所有文件)
打开后选择全文,将对齐方式选择为“右对齐”
将修改好的文件另存为“.prn”的文件(保存的文件后缀名改一下 .prn > .awl)将“.awl”的文件导入到S7源文件中,编译通过即可。

保存的文件后缀名改一下.prn > .awl
3、将excel生成后的文件导入S7
Sources >插入新对象>外部文件选择刚才重命名的awl文件双击.awl
注意DB号,每句结束的; 保存编译,
没有出错的话,就导入导出完成.。

s7-1200的PUTGET操作

s7-1200的PUTGET操作

S7-1200的PUT/GET通信by苏醒2017.7.161.配置PLC地址,保证每组的PLC地址在同一网段,且不同IP地址。

并点击一下添加新子网按钮,给PLC添加子网。

2.允许PLC的put/get通信访问。

(对本地PLC和目标PLC都要做本步骤的操作)3.在硬件组态中添加S7连接。

切换到网络视图,点击连接,选择S7连接,然后右键PLC,点击添加新连接。

在弹出的创建新连接窗口中点击添加。

然后点击关闭。

4.点击网络视图右边的三角形,点选“连接”选项卡,对刚刚新建的S7_连接_1进行配置。

例如,目标PLC地址为192.168.0.12,就将伙伴地址如图配置。

配置完PLC后,将伙伴的机架插槽信息修改为0和1即可。

PLC的硬件配置已经完成,将硬件配置下载。

5.进行编程操作,建立DB块。

例如我们想将目标PLC的DB20的数据读到本地PLC的DB10里面,首先要再远程PLC建立一个DB块。

然后选中该DB块,右键属性,在属性选项卡中关闭优化的块访问。

按照同样的操作在本地PLC建立DB10,关闭优化的块访问。

6.给远程PLC的DB20填充存储变量。

在DB20里面建立data0~data7,类型为Byte,并将data0,1,2,3的初始值改掉,便于以后观察。

(变量的名字是可以随意取的,不重复即可,不影响程序运行)在本地PLC的DB10建立存储空间。

在DB10里面建立read0~read7,类型为Byte。

初始值不需设置。

然后将DB块下载到PLC。

7.在main里编程。

在右下角找到通信指令,选择GET,拖到main函数里。

GET指令的REQ输入端是上升沿有效的(即每次M70.0从0变为1则执行一次GET远程读取),因此在程序段2里面给M70.0做了一个0.5s周期的脉冲循环。

ID的16#100表示我们在之前步骤中硬件配置里建立的S7连接的编号。

ADDR-1表示从远程PLC的DB20读取,起始点为DBX0.0,读取长度为4个Byte。

S7-1200_ModbusTCP_Communication_Getting_Start

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)保留功能代码,由某些公司使用某些传统设备代码,不可作为公共用途。

DB块 恢复

DB块 恢复

DB块恢复
有一个共享DB块,里面都是静态数据用来保存WINCC 画面的数据设置。

昨天,我打开DB块,点击在线监控,STEP7提示我,CPU内运行的DB块和我打开的不一致,问我是否上载CPU内的数据块来监控,我点击是。

之后奇怪的事情发生了:WINCC里设置的数据全部变成初始值了。

我之前有上载过程序,请问如果我把上载上来的DB块重新下载到CPU里,能否恢复之前的数据?
最佳答案
如果你已经打开保存的源程序进行监控时务必小心,因为这样做时你保存的数据块中内容与CPU中数据块的内容(初始值)肯定不一致,如果STEP7提示你,CPU 内运行的DB块和我打开的不一致,你点击“是”,就将CPU 目前中的数据(初始值)上传到你的上位机中,即把当前WINCC里设置的数据全变成了共享数据块中保存的初始值。

常规的做法是建立“变量表”(Variabletable)监控需要实时数据的变化,这样比较安全,不会修改源程序中内容。

如果你以前上传过程序,但程序的上传并不完整,如硬件信息不完整,必须重新定义,如分配模块的订货号和参数。

通常,在设备调试完后,必须在线打开CPU的源程序块,把
Online(在线)所有程序块复制到调试的源程序块中(覆盖),这样保证编程设备中的程序和CPU中程序的一致性。

根据你的目前情况,可以尝试把以前上传过的数据块下载到CPU中,选中相应的数据块,执行菜单命令PLC/Download,把该数据块下载到CPU中;另外只能在上位机中手动输入数据。

S7-300中UDT与STRUCT型数据总结

S7-300中UDT与STRUCT型数据总结

UDT型说明:从数据类型的意义上说UDT并不被CPU所识别,而是在离线程序中自定义(组合)的数据类型。

S7程序的自定义数据类型并不能装载到S7 CPU中。

UDT是由递增的编辑器创建并编辑或由源文件的编译而生成。

当在块调用中进行变量传递时是不能将UDT作为内存地址区域来传递的。

因此推荐将传递的变量指定为字节数据类型并与其数据长度相一致,或者使用UDT 的符号名来定义IN, OUT 和IN_OUT参数,因为系统将自动生成相对应的地址。

下表介绍了如何创建和参数化UDT类型变量的过程。

我们将以两组各十台相同的电机为例。

UDT1对应这些电机的所有输入变量。

步骤在STEP 7项目中插入自定义数据类型。

如图01鼠标选中"block”文件夹并点击右键,再弹出菜单中选择命令〕nsert New Object > Data Type”。

打开DB1将变量数据类型定义为UDT1 (符号名"Motor”)。

例如图05所示:两个数组(ARRAY )变量,每组包括 10个以UDT1为数据类型的变量(编号1到10)。

口 File Edit Insert PLC Debug Vie 1/'-.1 Options Wind 二叫,Help □I 谢明卬 副 总|电|包| 加通15 \|例!《忸| 凶图05由于此例两组电机是独立的,所以在DB1中要为每一组电机创建数据结构。

例如第一组的数据结构定义为数据类型为UDT1的数 组“Array[1..10] ”,符号名为“Halle 1 Motor”。

6选择菜单命令"View > Data View”可显示所有DB1数据。

IFile Edit Insert PLC Debug ”1 日闷 Options Windn'.'\' Help口|⑪然圜副星[电| c|c|阿曲|曰、同| [□面里]图注意事项:在数据块中变量定义为UDT情况下只能对实际值进行编辑。

基于S7协议的PC与828D实时通信设计与实现

基于S7协议的PC与828D实时通信设计与实现

基于S7协议的PC与828D实时通信设计与实现刘春生;吴庭贵;张人丰;王柱;王天雷【摘要】在分析西门子数控系统828D的S7-200/S7-300网络通信协议原理基础上,设计了一种基于S7协议的通信方法,可对828D的PLC变量、NC变量、R变量和刀具信息进行访问,以及检测其断开状态,实现了低成本方式获取系统的数据,有助于车间柔性制造系统(FMS)的建立.【期刊名称】《机电工程技术》【年(卷),期】2019(048)005【总页数】4页(P80-83)【关键词】828D数控系统;PLC;S7协议;报文分析【作者】刘春生;吴庭贵;张人丰;王柱;王天雷【作者单位】广东科杰机械自动化有限公司,广东江门 529030;广东科杰机械自动化有限公司,广东江门 529030;五邑大学智能制造学部,广东江门 529020;五邑大学智能制造学部,广东江门 529020;五邑大学智能制造学部,广东江门 529020【正文语种】中文【中图分类】TG6590 引言信息化是时代发展的大趋势,“互联网+制造”融合推进了“工业4.0”的发展,其战略核心环节是建立数字化车间,实现生产过程的自动化、智能化、信息化。

在工业数字化生产管理的发展要求中,实现数控系统的远程数据采集、数控车间的联网管理是推进数字化车间发展的一个重要基础[1-3]。

实时将生产加工与机床运行状态信息上传至服务器,以及对机床发出执行指令并监控其执行状态是实现智能制造不可或缺的重要的组成部分。

西门子SINUMERIK 828D数控系统,广泛用于加工,制造企业。

西门子数控系统提供多个访问机床数据的解决方案[4],如提供WinCC(Windows Control Center),可实现生产过程监控;通过SFTP协议可以操作机床内部文件(在一定权限内,可通过网络X130口或者X127口进行文件上传、下载、删除、属性修改等);通过西门子的OPCUA协议读写828D的机床内部变量数据及状态,从而有效对机床的加工数据进行统计。

Step75.5下DB数据块导入导出及DB当前值存储为默认值报告

Step75.5下DB数据块导入导出及DB当前值存储为默认值报告

Step 7 5.5 下DB数据块导入导出及DB当前值存储为默认值
导出
打开一个DB块
生成源文件
输入文件名DB5,确认
Simatic manager
Source> DB5>右键>导出源文件
新建一个excel文件
导入外部数据
按教程操作,注意导入完成后
最后的;不能少,否则编译时候会出错.
Begain
End_data_block
之间的数据可以删除
增加减少数据到你想要的数据
另存为prn格式
保存的文件后缀名改一下.prn > .awl
Sources >插入新对象>外部文件选择刚才重命名的awl文件
注意DB号,每句结束的; 保存编译,没有出错的话,就导入导出完成.
DB块的初始值传送给CPU 作为实际值Simatic manager View >oline 打开DB块
先保存,再生成源文件
选中DB
导出到文件夹Excel导入外部数据
BEGIN END_DATA_BLOCK 之间是当前数据
复制到对应区域.
在另存为prn ,改名awl ,导入, 打开, 保存编译. 注意,数据要建立得整齐一些.否则删除多余的;吧.。

S7-300常用操作说明

S7-300常用操作说明

利用STEP7监视输入输出量的方法DP:高速数据传送1、打开PLC软件。

运行STEP7,打开PLC软件,将左侧的文件夹层层展开直到选中Blocks,如下图所示:2、找到VAT块。

在右侧找到V AT_??的块,双击打开。

一般此块排列在所有块的最后面,名称以V AT开头,后跟的下划线后的名称可能不一样,可以不管,如有不止一个,可以任意打开一个。

如下图:3、插入VAT块。

如没有找到此块,可以在自行添加一个,操作如下图,在右侧窗口空白处点击鼠标右键,选择Insert New Object(插入新对象)——Variable Table(变量表)4、选中后将出现如下窗口5、打开VAT块。

点击OK按钮即可生成V A T_1块。

打开V A T块,如下图:6、查找监视点地址。

在Address一列中输入想要监视的地址,如需要监视第一流自动转换开关状态,则察看接口表7、监视数字量输入点。

如上图,察看接口表得知,第一流转换开关的自动档输入点为I0.0,第二流转换开关的自动档输入点为I4.0。

将这两个地址输入到V AT窗口中的Address一栏中,如图:8、判断监视结果。

在第一行中输入I0.0后,回车后,光标自动移到第二行,第三列的Display format自动设为BOOL 类型。

在保证工控机与PLC联接正常的情况下,可以点上图方框所示的Monitor Variable按钮,则情况应如下图所示,窗口的标题栏变为高亮的青色,窗口右下角的RUN状态栏有绿色状态条不断闪动。

下图所示的监视结果,I0.0结果为绿色,true,I0.4结果为灰色,false,表明第一流转换开关处于手动档,第二流转换开关不处于手动档。

9、错误判断。

如在Address栏中输入要监视的量后字变为红色,说明输入有误,例如:10、修改显示格式。

所有的数字量输入输出点的数据类型都是BOOL型,即输入要监视的点后,使用系统给出的默认Display format(显示格式)BOOL就可以了,如要监视模拟量输入点(模拟量输出点无法用VAT 监视),应该将显示格式改为Decimal如下图所示,如需要监视第一流的液位采样输入点,看接口表得知,此点地址为386,则在V AT窗口的Address(地址)一栏中输入PIW386,在Display format 一栏中点右键,选择Decimal:11、监视模拟量输入。

s7-1200的PUTGET操作

s7-1200的PUTGET操作

S7-1200的PUT/GET通信by苏醒配置PLC地址,保证每组的PLC地址在同一网段,且不同IP地址。

并点击一下添加新子网按钮,给PLC添加子网。

2.允许PLC的put/get通信访问。

(对本地PLC和目标PLC都要做本步骤的操作)3.在硬件组态中添加S7连接。

切换到网络视图,点击连接,选择S7连接,然后右键PLC,点击添加新连接。

在弹出的创建新连接窗口中点击添加。

然后点击关闭。

4.点击网络视图右边的三角形,点选“连接”选项卡,对刚刚新建的S7_连接_1进行配置。

例如,目标PLC地址为,就将伙伴地址如图配置。

配置完PLC后,将伙伴的机架插槽信息修改为0和1即可。

PLC的硬件配置已经完成,将硬件配置下载。

5.进行编程操作,建立DB块。

例如我们想将目标PLC的DB20的数据读到本地PLC的DB10里面,首先要再远程PLC建立一个DB块。

然后选中该DB块,右键属性,在属性选项卡中关闭优化的块访问。

按照同样的操作在本地PLC建立DB10,关闭优化的块访问。

6.给远程PLC的DB20填充存储变量。

在DB20里面建立data0~data7,类型为Byte,并将data0,1,2,3的初始值改掉,便于以后观察。

(变量的名字是可以随意取的,不重复即可,不影响程序运行)在本地PLC的DB10建立存储空间。

在DB10里面建立read0~read7,类型为Byte。

初始值不需设置。

然后将DB块下载到PLC。

7.在main里编程。

在右下角找到通信指令,选择GET,拖到main函数里。

GET指令的REQ输入端是上升沿有效的(即每次从0变为1则执行一次GET远程读取),因此在程序段2里面给做了一个周期的脉冲循环。

ID的16#100表示我们在之前步骤中硬件配置里建立的S7连接的编号。

ADDR-1表示从远程PLC的DB20读取,起始点为,读取长度为4个Byte。

RD-1表示读取到的数据存到本地PLC的DB10,从开始的4个BYTE。

在step7中如何将EXCEL文件导入DB块中

在step7中如何将EXCEL文件导入DB块中

1.在EXCEL中建立表格,输入DB数据块的值,一列输入变量名,另外一列
输入数据类型:
2.初始值
如果DB块不需要赋初值,跳过到第三步。

若不是,给变量赋初值(E列)。

3.建议在上述表格中增加如下几列:
(1)在变量名列后增加一列“:”
(2)在数据类型列后增加一列“:=”
(3)最后加上一列“;”
注意:每条指令必须以字符“;”结束,否则在后面会出现编译错误。

4.另存为带“格式文本文件”此时文件类型是“.prn”
点击保存→确定→是
5.将已保存的文件重命名为“.awl”类型的文件。

6.打开step7 在SIMIATIC Manager中选择sources文件夹,选择菜单栏的Insert→External Source。

在保存路径中选中所创建的AWL文件。

点击“OPEN”7.双击导入的STL SOURCE,打开文件,选择菜单栏的Insert→Block
Template DB。

8.删除多余的附加说明(绿色文本),将变量表剪切,黏贴到“STRUCT”和“END_STRUCT”中间。

设置合适的DB块(“DATA_BLOCK DBXX”)删除掉变量“b0”以及“BEGIN”和“END_DATE_BLOCK”中的指令“b0:=6#16#01”
形成上图的形式。

9.点击“保存”再编译,如果编译通过则此DB块会在DB块文件夹中生成并保存。

s7-1200的PUTGET操作

s7-1200的PUTGET操作

S7-1200的PUT/GET通信by苏醒配置PLC地址,保证每组的PLC地址在同一网段,且不同IP地址。

并点击一下添加新子网按钮,给PLC添加子网。

2.允许PLC的put/get通信访问。

(对本地PLC和目标PLC都要做本步骤的操作)3.在硬件组态中添加S7连接。

切换到网络视图,点击连接,选择S7连接,然后右键PLC,点击添加新连接。

在弹出的创建新连接窗口中点击添加。

然后点击关闭。

4.点击网络视图右边的三角形,点选“连接”选项卡,对刚刚新建的S7_连接_1进行配置。

例如,目标PLC地址为,就将伙伴地址如图配置。

配置完PLC后,将伙伴的机架插槽信息修改为0和1即可。

PLC的硬件配置已经完成,将硬件配置下载。

5.进行编程操作,建立DB块。

例如我们想将目标PLC的DB20的数据读到本地PLC的DB10里面,首先要再远程PLC建立一个DB块。

然后选中该DB块,右键属性,在属性选项卡中关闭优化的块访问。

按照同样的操作在本地PLC建立DB10,关闭优化的块访问。

6.给远程PLC的DB20填充存储变量。

在DB20里面建立data0~data7,类型为Byte,并将data0,1,2,3的初始值改掉,便于以后观察。

(变量的名字是可以随意取的,不重复即可,不影响程序运行)在本地PLC的DB10建立存储空间。

在DB10里面建立read0~read7,类型为Byte。

初始值不需设置。

然后将DB块下载到PLC。

7.在main里编程。

在右下角找到通信指令,选择GET,拖到main函数里。

GET指令的REQ输入端是上升沿有效的(即每次从0变为1则执行一次GET远程读取),因此在程序段2里面给做了一个周期的脉冲循环。

ID的16#100表示我们在之前步骤中硬件配置里建立的S7连接的编号。

ADDR-1表示从远程PLC的DB20读取,起始点为,读取长度为4个Byte。

RD-1表示读取到的数据存到本地PLC的DB10,从开始的4个BYTE。

wincc通过i-o域写数值到db块

wincc通过i-o域写数值到db块

wincc通过i/o域写数值到db块
wincc通过i/o域写数值到db块,当db块重新下载后,数值要重新写,原db块数值全部为零,请问有什么方法能在重新下载后原db块数值不变吗?谢谢
问题补充:
如何把db的初始值下载到cpu中去呢?
最佳答案
这个问题我问过西门子热线,具体步骤如下:
1.在initialvalue中填入你需要的初始值;
2.选择菜单栏=>view=>dataview切换到数据视图
3.选择菜单栏=>edit=>initializedatablock初始化数据块
4.下载该db块
相信这个问题解决了,你第一个问题应该也不成问题了,重新下载后你需要的参数也不会初始化为0了。

s7-1200的PUTGET操作

s7-1200的PUTGET操作

S7-1200的PUT/GET通信by苏醒2017.7.161.配置PLC地址,保证每组的PLC地址在同一网段,且不同IP地址。

并点击一下添加新子网按钮,给PLC添加子网。

2.允许PLC的put/get通信访问。

(对本地PLC和目标PLC都要做本步骤的操作)3.在硬件组态中添加S7连接。

切换到网络视图,点击连接,选择S7连接,然后右键PLC,点击添加新连接。

在弹出的创建新连接窗口中点击添加。

然后点击关闭。

4.点击网络视图右边的三角形,点选“连接”选项卡,对刚刚新建的S7_连接_1进行配置。

例如,目标PLC地址为192.168.0.12,就将伙伴地址如图配置。

配置完PLC后,将伙伴的机架插槽信息修改为0和1即可。

PLC的硬件配置已经完成,将硬件配置下载。

5.进行编程操作,建立DB块。

例如我们想将目标PLC的DB20的数据读到本地PLC的DB10里面,首先要再远程PLC建立一个DB块。

然后选中该DB块,右键属性,在属性选项卡中关闭优化的块访问。

按照同样的操作在本地PLC建立DB10,关闭优化的块访问。

6.给远程PLC的DB20填充存储变量。

在DB20里面建立data0~data7,类型为Byte,并将data0,1,2,3的初始值改掉,便于以后观察。

(变量的名字是可以随意取的,不重复即可,不影响程序运行)在本地PLC的DB10建立存储空间。

在DB10里面建立read0~read7,类型为Byte。

初始值不需设置。

然后将DB块下载到PLC。

7.在main里编程。

在右下角找到通信指令,选择GET,拖到main函数里。

GET指令的REQ输入端是上升沿有效的(即每次M70.0从0变为1则执行一次GET远程读取),因此在程序段2里面给M70.0做了一个0.5s周期的脉冲循环。

ID的16#100表示我们在之前步骤中硬件配置里建立的S7连接的编号。

ADDR-1表示从远程PLC的DB20读取,起始点为DBX0.0,读取长度为4个Byte。

相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

数据块初始值与实际值的含义
描述
在数据块的变量声明表中可以定义变量的名称、数据类型、注释和变量初始值。

初始值为纯粹的组态值,当由UDT生成数据块或在全局数据块中生成新变量时,组态的初始值被用作为实际值。

可以通过菜单命令“视图> 数据视图” 来查看实际值。

初始值对于数据块或新声明的变量数据块来说,组态的有效次数仅为一次。

如果变量已经存在,实际值将不会随着初始值的变化而发生改变。

对于CPU来说,操作的数值为实际值,初始值虽也可以下载到CPU中并可在线监控,但不会被CPU采用。

有以下的1、2两种方法可以将初始值传送给CPU 作为实际值,然后执行后面的3、4步:
1.切换到数据浏览状态“视图> 数据视图”,在“初始值” 栏输入新的初始值。

2.进入声明浏览状态“视图> 声明视图”,在“初始值” 栏输入新的初始值;
3.然后,切换到“数据视图” 状态,执行菜单命令“编辑> 初始化数据块”将所有“初始值”
栏的数值传送至“实际值”栏。

4.然后将数据块下载至CPU中。

由于初始值仅使用一次,因而没有必要将实际值装载至初始值,如装载“初始值”栏到“Initial value”栏。

STEP 7 中没有与之相关的菜单命令。

但是一些特殊应用需要将实际值保存为初始值。

这一过程可通过STL 源文件或Excel 来实现,以下将分别介绍其操作步骤。

在STL 源文件中,将数据块的实际值直接保存为初始值
当生成STL 源文件后,实际值可以逐行拷贝至STL 源程序中的声明语句中。

相关文档
最新文档