在 S7-SCL 中如何调试多重背景

合集下载

简述多重背景的使用方法

简述多重背景的使用方法

简述多重背景的使用方法
多重背景是指在电脑或手机桌面上同时设置多张背景图片,使桌
面看起来更加丰富多彩。

使用方法如下:
1. 首先需要找到想要使用的多重背景图片,可以在互联网上搜
索或者从个人收藏中选择。

2. 将多重背景图片保存到电脑或手机中的图片文件夹中,并确
保图片尺寸大小适合桌面分辨率。

3. 在电脑或手机的桌面设置中选择“多重背景”,然后依次添
加需要使用的背景图片,确定图片的显示顺序、位置、大小等属性。

4. 根据需求可以设置多重背景图片的切换时间和方式,例如按
顺序、随机等方式进行切换,以及设置滚动、平铺等不同的显示效果。

5. 最后保存和完成设置,此时多重背景已经成功应用到电脑或
手机的桌面上。

需要注意的是,在选择多重背景图片时要选择不会影响桌面查看
和使用的图片,同时不要添加过多的背景图片,以免影响电脑或手机
的性能。

S7+多重背景数据块

S7+多重背景数据块

在SIEMENS S7-300/400系列PLC中有多种程序块,如下图(在管理器右边的空白区域点击右键),主要有:组织块(OB),功能块(FB),功能(FC),数据块(DB)及系统功能(SFC)和系统功能块(SFB)等。

注:快捷菜单中的其它两项:数据类型和变量表。

数据类型(UDT)用于指定程序中数据元素的大小与格式;变量表(VAT)用来在程序调试和运行时修改和监视变量的内容(在地址栏中输入地址后,符号栏中会自动显示在符号表中定义的符号)。

这几种程序块的功能简要说明如下:说明:调用程序块:OB,FB,FC(可以调用除OB块外的其它程序块);被调用程序块:FB,FC,SFB,SFC。

1、组织块OBOB由系统自动调用,并执行用户在OB块中编写的程序,所以OB的基本作用是调用用户程序。

在OB块中编写程序的最大容量,S7-300是16KB,S7-400是64KB。

除主程序循环OB1外,其它OB均是由事件触发的中断。

2、函数FC函数FC有两个作用:(1)作为子程序用;(2)作为函数用,函数中通常带形参。

函数中程序的最大容量,S7-300是16KB,S7-400是64KB。

FC的形参通常也称为接口区,参数类型分为输入参数,输出参数,输入/输出参数和临时数据区。

在编写函数FC的输出参数时,应避免没有直接输出(否则,可能输出一个随机值,影响程序的判断)。

可以在函数的开始,将字输出参数清0,位输出参数复位。

3、函数块FBFB与FC相比,FB每次调用都必须分配一个背景数据块,用来存储接口数据区(TEMP类型除外)和运算的中间数据。

其它程序可以直接使用背景数据区中的数据。

FB中程序的最大容量,S7-300是16KB,S7-400是64KB。

FB的接口区比FC多了一个静态数据区(STAT),用来存储中间变量。

程序调用FB时,形参不像FC那样必须赋值,可以通过背景数据块直接赋值。

由于FB带有背景数据块,输出参数不会输出随机值,可以不在FB中编写初始化程序。

实例解析西门子S7-300的多重背景数据块使用,教你事半功倍!

实例解析西门子S7-300的多重背景数据块使用,教你事半功倍!

实例解析西门子S7-300的多重背景数据块使用,教你事半功倍!BFH当功能块FB1在组织块中被调用时,使用了与FB1相关联的背景数据块。

这样FB1有几次调用,就必须配套相应数量的背景数据块。

当FB1的调用次数较多时,就会占用更多的数据块。

使用多重背景数据块可以有效地减少数据块的数量,其编程思路是创建一个比FB1级别更高的功能块,如FB10,对于FB1的每一次调用,都将数据存储在FB10的背景数据块中。

这样就不需要为FB1分配任何背景数据块。

下面以发动机组控制系统为例,介绍如何编辑和使用多重背景数据块。

例发动机组控制系统设计——使用多重背景设某发动机组由1台汽油发动机和1台柴油发动机组成,现要求用PLC控制发动机组,使各台发动机的转速稳定在设定的速度上,并控制散热风扇的启动和延时关闭。

每台发动机均设置一个启动按钮和一个停止按钮。

项目的编程步骤如下:(1)创建S7项目。

使用菜单“文件”à“新建工程”向导创建发动机组控制系统的S7项目,并命名为“多重背景”。

CPU选择CPU 315- 2DP,项目包含组织块OB1。

(2)硬件配置。

在“多重背景”项目内打开“SIMATIC 300(1)”文件夹,打开硬件配置窗口,并按图1完成硬件配置。

图1 硬件配置(3)编辑如图2所示的符号表。

(4)规划程序结构。

程序结构规划如图3所示。

FB10为上层功能块,它把FB1作为其“局部实例”,通过二次调用本地实例,分别实现对汽油机和柴油机的控制。

这种调用不占用数据块DB1和DB2,它将每次调用(对于每个调用实例)的数据存储到体系的上层功能块FB10的背景数据块DB10中。

(5)编辑功能(FC)。

FC1用来实现发动机(汽油机或柴油机)的风扇控制,按照控制要求,当发动机启动时,风扇应立即启动;当发动机停止后,风扇应延时关闭。

因此FC1需要一个发动机启动信号、一个风扇控制信号和一个延时定时器。

1)定义局部变量声明表。

局部变量声明表如表1所示,表中包含3个变量,两个IN变量,1个OUT变量。

S7-300的功能块忘记选择多重实例背景功能,如何修改

S7-300的功能块忘记选择多重实例背景功能,如何修改

S7-300的功能块忘记选择多重实例背景功能,如何修改?
难道必须要删掉重新建立吗?
还有我建立好的FB FC在主程序已经调用了,
之后我又修改了调用的地方就是红的必须要重新调用吗?没有什么简单的方法可以更新吗?
Step1:在LAD编辑器开启你需要修改的FB.
Step2:执行菜单File——Generate Sourece(中文版可能译为文件——生成源文件),给Object Name文件名,单击OK。

Step3:将需要生成.源.代.码的FB拖入右边的框中,确认。

Step4:在Step7的项目树中的Source源文件夹中你能看到刚才转换的文件。

Step5:双击打开刚才的文件,然后删除CODE_VERSION1行。

Step6:执行File——Compile(文件——编译),编译前应确保先前开启的FB编辑器关闭,否则将提示错误。

经过上述过程,你可以为没有多背景的FB添加该功能,反之,可以为FB的多背景属性取消,如果你的FB不需要多背景功能,建议不要选择多背景选项,因为多背景选项会限制STL的编程。

SCL中文教程

SCL中文教程

A&D Service & Support
Page 3-39
4.2.2. 问题:如何用布尔型变量优化IF语句来缩短循环时间?...............................................32
4.3. 编译错误相关问题 ..........................................................................................34
4.3.1. 问题:S7-SCL程序在别人的计算机上打不开或无法编译? .........................................34 4.3.2. 问题:为什么我的程序与别人的程序完全一致,却通不过编译? ..............................34 4.3.3. 问题:包含比较类型为WORD/DWORD的变量的 IF 语句不能被编译通过? ..................35 4.3.4. 问题:当给一个双字类型变量分配了一个实型数值时,出现非法数据类型错误.......35 4.3.5. 问题:在输出窗口中的错误消息与程序行数字不符 ......................................................35 4.3.6. 问题:"The FB is not available or the instance declaration is missing"..............................36 4.3.7. 问题:"Character strings have different lengths"................................................................36 4.3.8. 问题:CPU消息"STOP due to unknown OP code" ............................................................37 4.3.9. 问题:在编译UDT时出现"Syntax error with UNLINKED" .............................................37 4.3.10. 问题:在编译DB时出现"Syntax error with 2#1100_1100".............................................38

S7-SCL 怎么调试多重背景

S7-SCL 怎么调试多重背景
如果对您有帮助,请下载惠存
5
通过"Test > Breakpoints active"切换至测试模式
6
S7-SCL编辑器窗口将被分割为两部分,并且程序将运行到下一个断点。如果程序停止在块调用的行(多重背景),则选择"Test > Execute call"。
图01
在测试模式下,低等级的块被打开并被处理。在处理后,程序返回调用位置。
可以在S7-SCL在线帮助中查找到更多的信息
Debugging with Breakpoints/Single Step Mode
Starting the Test with Breakpoints
Debugging in the Single Step Mode
关键字:
故障检测
End
技成培训网整理

介绍:在S7-SCL中,可以像在STEP 7 LAD/STL/FBD编辑器一样编辑多重背景。可以在技成培训网发布的《断点功能怎么调试见下表:
编号
步骤
1
通过S7-SCL菜单命令"Tools > Settings..."打开"Settings"对话框,并选择"Compiler"页面。激活选项"Create Debug Info"并确认。
2
通过"Test > Operation > Test operation"操作,改变CPU模式至测试模式
3
保存并编译S7-SCL程序,并下载到CPU中。
4
把光标移动至相应的程序行,并执行"Test > Set breakpoint",来为多重背景设置断点。在S7-SCL指令临近位置,断点以一个彩色的小圆圈显示。

SCL入门教程

SCL入门教程

SCL⼊门教程SCL介绍SCL 编程语⾔SCL(Structured Control Language,结构化控制语⾔)是⼀种基于 PASCAL 的⾼级编程语⾔。

这种语⾔基于标准 DIN EN 61131-3(国际标准为 IEC 1131-3)。

根据该标准,可对⽤于可编程逻辑控制器的编程语⾔进⾏标准化。

SCL 编程语⾔实现了该标准中定义的 ST 语⾔ (结构化⽂本) 的 PLCopen 初级⽔平。

S7-1200从V2.2版本开始⽀持SCL语⾔。

语⾔元素SCL 除了包含 PLC 的典型元素(例如,输⼊、输出、定时器或存储器位)外,还包含⾼级编程语⾔。

表达式赋值运算运算符程序控制语句SCL 提供了简便的指令进⾏程序控制。

例如,创建程序分⽀、循环或跳转。

应⽤因此,SCL 尤其适⽤于下列应⽤领域:数据管理过程优化配⽅管理数学计算 / 统计任务表达式说明:表达式将在程序运⾏期间进⾏运算,然后返回⼀个值。

⼀个表达式由操作数(如常数、变量或函数调⽤)和与之搭配的操作符(如 *、/、+ 或 -)组成。

通过运算符可以将表达式连接在⼀起或相互嵌套。

运算顺序表达式将按照下⾯因素定义的特定顺序进⾏运算:相关运算符的优先级,优先级数越⼩越优先同等优先级运算符的运算顺序按照从左到右的顺序赋值运算的计算按照从右到左的顺序进⾏括号优先级最⾼表达式类型不同的运算符,分别可使⽤以下不同类型的表达式:算术表达式关系表达式逻辑表达式算数表达式说明:算术表达式既可以是⼀个数字值,也可以是由带有算术运算符的两个值或表达式组合⽽成。

算术运算符可以处理当前 CPU 所⽀持的各种数据类型。

如果在该运算中有 2 个操作数,那么可根据以下条件来确定结果的数据类型:如果这 2 个操作数均为有符号的整数,但长度不同,那么结果将采⽤长度较长的那个整数数据类型(例如,Int + DInt = DInt)。

如果这 2 个操作数均为⽆符号整数,但长度不同,那么结果将采⽤长度较长的那个整数数据类型(例如,USInt + UDInt = UDInt)。

S7-1200PLC多重背景数据块DB使用方法

S7-1200PLC多重背景数据块DB使用方法

S7-1200PLC多重背景数据块DB使用方法前两次文章和大家讲解了FB FC块使用方法,其中包含带参数、多次调用、全局库知识点,那么结合前两次内容给大家补充一个技巧,如何通过多次调用FB或FC块并产生一个DB背景数据块,统称为:多重背景数据DB块。

一、创建一个FB块(电机正反转互锁)第一步:(添加FB块,命名为:正反转)二、编写FB块参数与程序第一步:(填写接口参数地址与数据类型)Input(输入接口)正转启动(数据类型BOOL)反转启动(数据类型BOOL)停止按钮(数据类型BOOL)InOut(输入输出接口)正转启动(数据类型BOOL)反转启动(数据类型BOOL)第二步:(编写正反转程序)三、创建一个FB块作为多重背景存放第一步:(创建FB100块,作为多重背景存放区)FB编号可以根据调用的FB多少来确定,当然越大越好。

第二步:(在FB100接口Static(静态变量)参数中创建调用FB 块多重背景名称)根据自己需要调用次数来填写,比如我需要调用三次,那么就创建三个即可,其它以此类推,FB块多重背景名称可以随意定义,没有固定的名称。

四、调用FB块第一步:(在FB100中调用FB1正反转程序)调用时选择多重背景,然后在多重背景接口参数中的名称选择在FB100接口参数中Static(静态变量)创建的名称,通过编号1 2 3排列。

第二步:(填写FB1正反转管脚地址)五、查看背景数据DB块第一步:(创建DB块,命名为:正反转背景DB块)第二步:(调用三次FB块,背景数据块全部集成在一个背景DB 块中)按照正常调用法,每次调用一个FB或FC块都要产生一个DB背景数据块,这样浪费并占地方,一个背景DB块可以存入1万6千多个数据,所以这样很浪费,因此采用多重背景数据DB,把所有数据都放在一个背景数据块中。

六、演示效果第一步:(三个FB正反转块全部同时启动电机正转)它们之间相互互不影响,可以同时启动,同时停止,同时反转。

块调用与多重背景模型

块调用与多重背景模型

程序 执行
CALL FC10
On_1 := On_2 := Off := I 0.1 I 0.2 Q8.0 BLD = UC 1 L FC P#I P#I P#Q 2 20.0 10 0.1 0.2 8.0
BLD
... A A = ...
#On_1 #On_2 #Off
块参数
实际参数
形式参数
SIMATIC S7
SITRAIN Training for
Automation and Drives
功能及功能块中的参数声明
参数是信息传递的通道
输入参数: 输入参数: Caller -> Block 输出参数: 输出参数: Block -> Caller 输入/输出参数 输出参数: 输入 输出参数: Caller <-> Block 地址 0.0 0.1 2.0 2.0 8.0 10.0 ... ... 声明 输入 输入 输入 输出 输出
FB 1
地址 0.0 0.1 2.0 4.0 6.0 0.0 . . . A AN = .
. .
#Start #Stop #Motor_on
SIMATIC S7
Siemens AG 2001. All rights reserved.
Date: File:
2010-9-4 PRO2_06E.2
SITRAIN Training for
输入 输入 输出 ...
On_1 On_2 Off
BOOL BOOL BOOL
扩展了处理器的指令集
... A A = ...
#On_1 #On_2 #Off
SIMATIC S7
Siemens AG 2001. All rights reserved.

S7-1200 定时器

S7-1200 定时器

S7-1200 定时器S7-1200的定时器为IEC定时器,用户程序中可以使用的定时器数量仅仅受CPU的存储器容量限制。

使用定时器需要使用定时器相关的背景数据块或者数据类型为IEC_TIMER(或TP_TIME、TON_TIME、TOF_TIME、TONR_TIME)的DB块变量,不同的上述变量代表着不同的定时器。

注:S7-1200的IEC定时器没有定时器号(即没有T0、T37这种带定时器号的定时器)。

S7-1200包含四种定时器:•生成脉冲定时器(TP)•接通延时定时器(TON)•关断延时定时器(TOF)•时间累加器(TONR)此外还包含复位定时器(RT)和加载持续时间(PT)这两个指令。

指令位置参见图1,定时器引脚参考表1,定时器使用及时序图参考表2。

这四种定时器又都有功能框和线圈型两种,区别参见常见问题3。

图1 指令位置表1定时器引脚汇总表2定时器使用及时序图生成脉冲LAD:或-( TP )-SCL:TP接通延时LAD:或-( TON )-SCL:TON 关断延时LAD:或-( TOF )-时间累加器LAD:或-( TONR )-SCL:TONRS7-1200 定时器创建S7-1200定时器创建有以下几种方法:1. 功能框指令直接拖入块中,自动生成定时器的背景数据块,该块位于“系统块>程序资源”中,参见图2。

图2 自动生成定时器的背景数据块2. 功能框指令直接拖入FB块中,生成多重背景,参见图3。

图3 多重背景3. 功能框指令直接拖入FB、FC块中,生成参数实例,从TIA博途V14开始,参见图4。

图4 参数实例4. 在DB块、FB的静态变量、FC和FB的INOUT变量中新建IEC_TIMER、TP_TIME、TON_TIME、TOF_TIME、TONR_TIME(后面四个从TIA博途V11开始)类型变量,在程序中将功能框定时器指令拖入块中时,在弹出的“调用选项”页面点击“取消”按钮,之后将该建好的变量填入指定位置。

西门子PLC高级编程1_块调用与多重背景模型

西门子PLC高级编程1_块调用与多重背景模型

SIMATIC S7
Siemens AG 2001. All rights reserved.
Date: File:
2018/7/13 PRO2_06E.3
SITRAIN Training for
Automation and Drives
功能及功能块中的参数声明
参数是信息传递的通道
输入参数: Caller -> Block
.
.
.
A
#Start
AN #Stop
=
#Motor_on
.
类型 BOOL BOOL BOOL INT INT INT
SIMATIC S7
Siemens AG 2001. All rights reserved.
Date: File:
2018/7/13 PRO2_06E.2
SITRAIN Training for
Date: File:
2018/7/13 PRO2_06E.11
SITRAIN Training for
Automation and Drives
使用复杂数据类型的FB调用过程
示例:将一个ARRAY传送到一个功能块
FB17
DB2 "Temperature"
只允许用符号对复杂参数进行相关分配
Network 1:
CALL FBx, DBy
... ...
FBx 控制算法 DBx
+
DBy
Drive_1 状 态数据
FB实例
FB内的声明 (多 重背景)
FB
... stat Motor_1 FBx stat Motor_2 FBx
CALL #Motor_1 . CALL #Motor_2

STEP 7中FB生成多重背景数据块

STEP 7中FB生成多重背景数据块
4 一旦修改过了多重背景,并打开调用它的功能块。当功能块被打开时,会出 现一个消息显示在 FB 接口声明中有一个 UDT 或本地标签的被修改,并显 示在功能块调用中至少有一个时间标签冲突。确认此信息,修改过的背景调 用在 LAD/STL/FBD 编辑器中将会以亮红色显示。 为了更新功能块调用,右击功能块,然后在弹出菜单中选择“Update Block Call...”。
*************************************************************************************
************************************************************************************* 以下详细讲解西门子多重背景数据块的使用。
程序的结构。 通过工具栏中的第二个按钮或者“Program > Compile All”功能编译程序。在
编译后,STEP 7 程序一致性将统一。
图5 当新生成一个新的功能块,在功能块属性中多重背景功能默认被选择(图 6)。 也可以改变此设置:
图6 一旦已经生成了功能块,多重背景功能就不可以被重新设置,是否具有多重背景 的属性只可以显示,除非按照一个冗长的过程来修改它。
图3
5
在后续的对话框中,点击 OK 来执行接口更新。
图4 在 STEP 7 V5.3 中的注意事项: 当尝试通过“File > Check and Update Accesses”来更新程序块调用时, STEP7 V5.3 不能发现变量间的唯一分配,调用还是保持红颜色,也无法通 过“Edit > Call > Update”改正调用错误。更新调用的唯一办法是删除调用, 在声明中更新接口,然后再以多重背景方式调用功能块。如果已经删除了 FB 接口中的变量,应该通过“Edit > Call > Update”来改正所有的多重背景调用, 而不需使用前面的“Check and Update Accesses”功能。一旦已经更新了这些 多重背景,就又可以与平时一样使用“Check and Update Accesses”功能了。 6 推荐在更新功能块调用后进行一致性检查。在 SIMATIC Manager 中,右击 S7 program 文件夹,选择“Check block consistency...”功能,系统会显示 S7

S7-SCL编程

S7-SCL编程

S7-SCL编程Programming with S7-SCLhttps:///cs/cn/zh/view/109481384摘要本文档主要用于讨论与S7-SCL编程相关的以下问题:²编程软件的基本信息²基本概念讲解²基本使用讲解²用于示例工程的简单应用例子²实际使用中常见问题及讲解关键词编程工具;Step7;语句表;S7-SCL;Key WordsProgramming tools; Step7;STL;S7-SCL;目录S7-SCL编程 (1)1.前言 (5)2.软件的基本信息 (5)2.1.S7-SCL简介 (5)2.2.S7-SCL与STL: (6)2.3.S7-SCL的安装与使用: (6)2.4.S7-SCL软件兼容性 (6)3.S7-SCL应用于虚拟工程 (7)3.1.虚拟工程工艺要求 (7)3.2.S7-SCL简单示例 (7)3.2.1.重要提示: (16)4.S7-SCL常见问题 (17)4.1.程序编写相关问题 (17)4.1.1.问题:S7-SCL支持哪些STEP7块,与其它语言有什么关系? (17)4.1.2.问题:如何规范地的开发一个S7-SCL程序? (17)4.1.3.问题:如何加密我的S7-SCL程序? (17)4.1.4.问题:为什么双击打开S7-SCL类型的程序后,显示的格式却是STL格式? (18)4.1.5.问题:什么是OK Flag? (18)4.1.6.问题:S7-SCL中读取一个组织块的信息 (19)4.1.7.问题:如何理解FC/SFC的输出参数 RET_V AL(返回值)? (20)4.1.8.问题:在 S7-SCL程序中,PLC中的地址标识使用的注意事项 (21)4.1.9.问题:为什么用户人工输入的程序在编译时经常提示语法错误? (22)4.1.10.问题:如何对S7-SCL程序中的数据块及静态变量初始化? (23)4.1.11.问题:什么是“AT”指令,如何使用? (23)4.1.12.问题:S7-SCL程序中如何使用多重背景? (28)4.1.13.问题:如何在S7-SCL程序中实现数据块间接寻址? (28)4.1.14.问题:在S7-SCL程序中调用FC/FB与在STL/LAD中有何区别? (29)4.1.15.问题:转换到“REAL”数据类型需要使用哪种数据类型转换程序? (30)4.1.16.问题:在S7-SCL中如何区分变量名是本地变量,还是符号名? (30)4.1.17.问题:如何访问一个字符串中的单个字符? (30)4.2.程序优化相关问题 (31)4.2.1.问题:如何在访问结构时优化运行时间? (31)4.2.2.问题:如何用布尔型变量优化IF语句来缩短循环时间? (32)4.3.编译错误相关问题 (34)4.3.1.问题:S7-SCL程序在别人的计算机上打不开或无法编译? (34)4.3.2.问题:为什么我的程序与别人的程序完全一致,却通不过编译? (34)4.3.3.问题:包含比较类型为WORD/DWORD的变量的 IF 语句不能被编译通过? (35)4.3.4.问题:当给一个双字类型变量分配了一个实型数值时,出现非法数据类型错误 (35)4.3.5.问题:在输出窗口中的错误消息与程序行数字不符 (35)4.3.6.问题:"The FB is not available or the instance declaration is missing" (36)4.3.7.问题:"Character strings have different lengths" (36)4.3.8.问题:CPU消息"STOP due to unknown OP code" (37)4.3.9.问题:在编译UDT时出现"Syntax error with UNLINKED" (37)4.3.10.问题:在编译DB时出现"Syntax error with 2#1100_1100" (38)4.4.与监控调试相关问题 (38)4.4.1.问题:为什么我的程序编译通过,但无法运行? (38)4.4.2.问题:为什么我的程序无法被监控? (38)4.4.3.问题:在S7-SCL哪些变量在监控时无法被显示? (39)重要提示:本文为技术交流文档,不能作为订货、选型等重要事宜的唯一依据,建议您参考Siemens的标准产品样本和技术手册进行产品的选型和订货。

西门子S7-1200定时器使用说明

西门子S7-1200定时器使用说明

S7-1200 定时器
S7-1200的定时器为IEC定时器,用户程序中可以使用的定时器数量仅仅受CPU的存储器容量限制。

使用定时器需要使用定时器相关的背景数据块或者数据类型为IEC_TIMER(或TP_TIME、TON_TIME、TOF_TIME、TONR_TIME)的DB块变量,不同的上述变量代表着不同的定时器。

注:S7-1200的IEC定时器没有定时器号(即没有T0、T37这种带定时器号的定时器)。

S7-1200包含四种定时器:
•生成脉冲定时器(TP)
•接通延时定时器(TON)
•关断延时定时器(TOF)
•时间累加器(TONR)
此外还包含复位定时器(RT)和加载持续时间(PT)这两个指令。

指令位置参见图1,定时器引脚参考表1,定时器使用及时序图参考表2。

这四种定时器又都有功能框和线圈型两种,区别参见常见问题3。

图1 指令位置
表1定时器引脚汇总
表2定时器使用及时序图。

在 S7-SCL 中关于错误信息及警告的提示和技巧

在 S7-SCL 中关于错误信息及警告的提示和技巧

下表提供了上述问题的原因及其补救方法:
No. 原因及解决办法 1 当将一个实数赋值给一个双字变量时,提示信息是“无效数据类型” 注意只有当数据类型为 BOOL,BYTE,WORD 和 DWORD 时,才允许对 DB 块的绝对地址进行访问。 图 01 举例说明一个数据类型何时必须要转换。
图 01 2 在输出窗口中错误信息与程序行数不匹配 当行数超过 65535 时,S7-SCL 编译器再次从 1 开始计数。例如,一个编 程错误出现在 S7-SCL 源程序的第 65537 行,后面的行数字将输出:
4 消息:“Character strings have different lengths” 在图 02 示例中包含 FC1 和 FC2 带有字符串变 量 "name_1" 与 "name_2", 当 FC1 被编译时,得到警告"Character strings have different lengths"。在运行期间,在赋值的右侧("name_1")可能是一个比左侧 所允许的 STRING 变量 ("name_2") 具有更长长度的 STRING 字符串。 补救方法: 建议为左边的变量“name_2”声明一个长度为 254 字符的 STRING 字符串。 如果编译具有这个声明的功能块 FC2 ,上述警告将不会再出现。

Var1: BYTE:= b#16#cc;
注意:

S7-SCL 符号在 S7-SCL 在线帮助下“Notation of constants”(常量符 号)中可用,且

STL 符号在 STEP 7 在线帮助下“Help on STL > Entering and displaying constants”(STL 帮助 > 输入和显示常量)中可用。

STEP7如何使用多重背景数据块

STEP7如何使用多重背景数据块

STEP7如何使用多重背景数据块多重数据块是数据块的一种特殊形式,如在OB1中调用FB10,在FB10中又调用FB1和FB2,则只要FB10的背景数据块选择为多重背景数据块就可以了,FB1和FB2不需要建立背景数据块,其接口参数都保存在FB10的多重背景数据块中。

建立多重背景数据块的方法是:在建立数据块只要在数据类型选项中选择“实例的DB”就可以了,见下例。

下面通过一例简单介绍一下多重背景数据块使用的一些注意事项和方法。

例如,PLC控制两台电机,且控制两台电机的接口参数均相同。

一般的作法,我们可以编写功能块FB1控制两台电机,当控制不同的电机时,分别使用不同的背景数据块就可以控制不同的电机了(如第一台电机的控制参数保存在DB1中,第二台电机的控制参数保存在DB2中,我们可以在控制第一台电机调用FB1时以DB1为背景数据就可以了,第二台同样以DB2为背景数据块)。

这样就需要使用两个背景数据,如果控制的电机台数更多,则会使用更多的数据块。

使用多重背景数据块就是为了减少数据块的数量。

像这种情况,我们就可以利用多重背景数据块来减少数据块的使用量。

拿本例来说,我们就可以在OB1中调用FB10,再在FB10中分别调用(每台电机各调用一次)FB1来控制两台电机的运转。

对于每次调用,FB1都将它的数据存储在FB1的背景数据块DB1中。

这样就无需再为FB1分配数据块,所有的功能块都指向FB10的数据块DB10。

原理图如下:首先,我们需要先后插入一个功能块FB10和数据块DB10,DB10就为FB10的多重背景多重数据块。

如下图:其次,需要在FB10中指定其所包含的背景数据块。

方法如下:在FB10局部变量定义窗口中,在“STAT”变量区中(必须在此变量区中)为每台电机的控制取好名称后,数据类型选择FB ,确认后,再把改为1,即功能块FB1。

如果你在变量表中已经定义了FB1的符号,则会自动出现其符号名。

地址一般由CPU根据FB1的接口参数数量自动计算得到,采用默认值就可以了。

在 S7-SCL 中关于错误信息及警告的提示和技巧

在 S7-SCL 中关于错误信息及警告的提示和技巧

"F: Z 00001 error xyz" instead of "F: Z 65537 error xyz"
补救方法: 双击 S7-SCL 编译器输出窗口中的错误信息,光标将跳到不正确的行。如果 编程错误不在指定行中,可以使用菜单命令“Edit > Go To > Line ... ”,然后输 入“65536 + 显示错误数字”跳转至有错误声明的行。 注意: 建议减少 S7-SCL 源程序中的行数。然后编译源程序。 3 消息:“The FB is not available or the instance declaration is missing” 如果一个 FC/FB/SFB/SFC 块在程序中被调用,而这个程序块不在块程序文 件夹中,也不能从库里复制,将会显示这条消息。 补救方法: 手动复制相关的程序块到块程序文件夹中,然后编译 S7-SCL。

Var1: BYTE:= b#2#1100_1100;
在 S7-SCL 中,数据块由 STL 编译器生成。如果在数据块的 DB 块准备部 分和 DB 块赋值部分同时初始化变量,必须使用 STL 专用符号。因此,在 Byte 类型的变量的示例中,仅允许指定十六进制数作为初始值。S7-SCL 符 号(例如 B#2#1100_1100)只能用于代码区,因为 S7-SCL 编译器在代码区 被使用。 补救方法: 将二进制数改为十六进制数作为初始值,例如:
图 04

Var1: BYTE:= b#16#cc;
注意:

S7-SCL 符号在 S7-SCL 在线帮助下“Notation of constants”(常量符 号)中可用,且

STL 符号在 STEP 7 在线帮助下“Help on STL > Entering and displaying constants”(STL 帮助 > 输入和显示常量)中可用。

学习报告:西门子中多重背景的应用学习心得

学习报告:西门子中多重背景的应用学习心得
此输送线由5个工位组成,如下图所示(画的不好,将就观看),另: 此列子条件较少,实际情况更加复杂,只是拿来讲解用。本列子将 使用多重背景来实现各个电机的正转反转停止的功能。
报告
重庆元创
结合上图,在运转OK的情况下,在手动时能够实现单 个划橇的前后运动,并在自动时能够整线前后运动。 当按下SB10前进按钮,划橇1能从SB10运动到SB20, 当按下SB20前进按钮,划橇2能从SB20运动到SB30, 当按下SB30前进按钮,划橇3能从SB30运动到SB40, 当按下SB40前进按钮,划橇4能从SB40运动到SB50, 当按下SB10后退按钮,划橇1能从SB20运动到SB10, 当按下SB20后退按钮,划橇2能从SB30运动到SB20, 当按下SB30后退按钮,划橇3能从SB40运动到SB30, 当按下SB40后退按钮,划橇4能从SB50运动到SB40, 当按下全线前进PB,全线前进,按下全线后退PB, 全线退后,到位后都能自动停止电机转动。 注意:前进到位和后退到位检测开关分别在划橇的两边。
ቤተ መጻሕፍቲ ባይዱ
重庆元创
如下图是FB2的两段程序,包括电机的正转和反转。
报告
重庆元创
下面是本次PPT的重点内容,多重背景的使用,首先打开FB1,在块 接口下的静态变量(static)中输入变量,数据类型选择FB2。
报告
重庆元创
在层序段中插入空功能框,在空功能框中输入FB2。
此时会弹出调用选项框,如图所示:
报告
重庆元创
此时我们选择多重背景选项,在接口参数中的名称中选择你要的参数,如图:
报告
重庆元创
点击确认后,会出现如下图的调用块
报告
重庆元创
这样就可以对FB2进行多次调用了,下图为电机1的调用块。

S7-300多重背景调用实例

S7-300多重背景调用实例

S7-300多重背景调用实例多重背景数据块如果在结构化编程时经常使用功能块,那么在每次调用FB时都要为其指定一个单独的背景数据块。

对于非常小的FB,它的背景数据块经常由很少的几个字组成,则会浪费大量没有使用的背景数据块空间。

当频繁调用和指定背景数据块给这些小的FB时,程序会变得非常不清晰,或者DB块的数量会达到CPU所支持的最大数量。

由于一个背景数据块可以长于FB实际需要的长度,因此多个背景数据块可以合并成一个多重背景。

但是,这种合并必须在一个FB中通过编程完成。

多重背景调用等同于FC的调用,在多重背景下调用的参数填写一定不能空着,必须有实际地址,否则用DB10的数据程序会混乱具体步骤:1.先建立一个FB1。

符号名:三数相加。

完成内容a*b*c=outcome定义形式参数IN:a, b, cOUT:outcometemp:temp_out2.在SIMATIC Manager 中,打开你希望生成多重背景的FB2。

在静态变量STAT定义部分,输入多重背景的名字,数据类型为FB,选择后要注意改成FB1。

然后将左侧多重背景的数据模块拖入编程框内。

3.建立FB2的多重背景数据块4.在主程序OB1里调用FB25.如果需要可以在主程序里用mov指令给相应的变量例如DB1.DBW2等赋值,或直接在DB2数据库里改变当前值。

6.仿真运行多重背景刷新补充内容7.一旦修改过了多重背景,并打开调用它的功能块。

当功能块被打开时,会出现一个消息显示在FB 接口声明中有一个UDT 或本地标签的被修改,并显示在功能块调用中至少有一个时间标签冲突。

确认此信息,修改过的背景调用在LAD/STL/FBD 编辑器中将会以亮红色显示。

为了更新功能块调用,右击功能块,然后在弹出菜单中选择“Update Block Call...”。

8. 在后续的对话框中,点击OK 来执行接口更新当尝试通过“File > Check and Update Accesses”来更新程序块调用时,STEP7 V5.3 不能发现变量间的唯一分配,调用还是保持红颜色,也无法通过“Edit > Call > Update”改正调用错误。

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

在 S7-SCL 中如何调试多重背景?
介绍: 在 S7-SCL 中,可以像在 STEP 7 LAD/STL/FBD 编辑器一样编辑多重背景。

可以在如下条目中查找到关于断点 的详细描述:

"How can you test a STEP 7 program with breakpoints?" 在条目 ID: 21336333
过程描述见下表:
编 步骤 号 1 通过 S7-SCL 菜单命令 "Tools > Settings..." 打开 "Settings" 对话框, 并选择 "Compiler" 页面。

激活选项 "Create Debug Info" 并确认。

2 通过 "Test > Operation > Test operation" 操作,改变 CPU 模式至测试模式 3 保存并编译 S7-SCL 程序,并下载到 CPU 中。

4 把光标移动至相应的程序行,并执行 "Test > Set breakpoint",来为多重背景 设置断点。

在 S7-SCL 指令临近位置,断点以一个彩色的小圆圈显示。

5 通过 "Test > Breakpoints active" 切换至测试模式 6 S7-SCL 编辑器窗口将被分割为两部分,并且程序将运行到下一个断点。

如 果程序停止在块调用的行(多重背景),则选择 "Test > Execute call"。


图 01 在测试模式下,低等级的块被打开并被处理。

在处理后,程序返回调用位置。

可以在 S7-SCL 在线帮助中查找到更多的信息
  
Debugging with Breakpoints/Single Step Mode Starting the Test with Breakpoints Debugging in the Single Step Mode
关键字: 故障检测



















相关文档
最新文档