Step7_TreeUtil.pdf
STEP7编程方法
STEP7编程方法编程方法是指编写和组织代码的一套规则和方法论,以便更高效地开发和维护软件。
在软件开发过程中,合适的编程方法可以提高代码的可读性和可维护性,减少代码错误,并且提供更好的代码重用性和扩展性。
下面将介绍几种常见的编程方法。
1.模块化:模块化是将软件系统划分为多个独立的功能模块的过程。
每个模块都有自己的输入和输出,可以独立地测试和调试。
模块化使得代码更加可读和可维护,并且可以提高代码的重用性。
2.面向对象编程(OOP):面向对象编程是一种编程范式,通过将数据和操作封装为对象,实现了数据和行为的内聚性。
OOP可以提高代码的可读性和可维护性,以及代码的重用性和扩展性。
3.设计模式:设计模式是在软件设计过程中,经过反复验证的解决特定问题的方法。
常见的设计模式包括单例模式、工厂模式、观察者模式等。
使用设计模式可以提高代码的可维护性和可扩展性,减少代码的重复。
4.测试驱动开发(TDD):TDD是一种开发方法,先编写测试代码来验证需求,然后再编写能够通过测试的业务代码。
TDD可以提高代码的质量和可靠性,减少代码错误,并且可以使开发人员集中在实现需求上。
5.代码重构:代码重构是对已有代码进行修改,目的是提高代码的可读性、可维护性和性能。
通过代码重构,可以减少冗余代码,提取通用代码,优化算法等。
代码重构一般不改变代码的外部行为,但可以极大地改善代码的结构和效率。
6. 版本控制:版本控制是记录和管理代码的变化的系统。
通过版本控制,可以方便地追踪代码的修改历史,协同开发,回滚代码等。
常见的版本控制工具有Git和SVN等。
7.文档化:编写良好的文档是一个好的编程习惯。
文档可以帮助他人理解代码的功能和使用方法,也可以作为开发人员自己的备忘录。
良好的文档可以提高代码的可读性和可维护性,并且可以促进团队协作。
8.性能优化:在优化代码性能时,需要根据具体情况进行不同层面的优化。
从算法上优化,可以减少不必要的计算;从数据结构上优化,可以提高数据的访问效率;从代码实现上优化,可以减少不必要的资源消耗。
STEP7-功能块全中文说明资料
18
35. S_ODT接通延时 S5定时器 36. S_ODTS保持接通延时 S5定时器 37. S_OFFDT断开延时 S5定时器
19
38. ---( SP ) 脉冲定时器线圈
---( SP )
39. ---( SE ) 扩展脉冲定时器线圈
---( SE ) 20
12
? 调用多重背景 ? 调用来自库的块 ? 使用 MCR 功能的重要注意事项 ? ---(MCR<) 主控制继电器打开 ? ---(MCR>) 主控制继电器关闭 ? ---(MCRA) 主控制继电器激活 ? ---(MCRD) 主控制继电器取消激活 ? RET 返回
移位和循环移位指令
? SHR_I 整数右移 ? SHR_DI 长整数右移 ? SHL_W 左移字 ? SHR_W 右移字 ? SHL_DW 双字左移 ? SHR_DW 右移双字 35. SHR_I 整数右移
两个 32 位 IEEE 浮点数
使用浮点运算指令,可对 一个 32 位 IEEE 浮点数 执行下列操作: ? 求绝对值 (ABS) ? 求平方 (SQR) 和平方根 (SQRT) ? 求自然对数 (LN) ? 求指数值 (EXP) 以 e (= 2,71828) 为底
8
? 求下列 32 位 IEEE 浮点数表示的角度的三角函数 - 正弦 (SIN) 和反正弦 (ASIN) - 余弦 (COS) 和反余弦 (ACOS) - 正切 (TAN) 和反正切 (ATAN)
11
32. ATAN 得到反正切值
33. MOVE分配值
34. 程序控制指令概述 说明 可使用下列程序控制指令: ? ---(CALL) 调用来自线圈的 FC SFC( 不带参数 ) ? CALL_FB 调用来自框的 FB ? CALL_FC 调用来自框的 FC ? CALL_SFB 调用来自框的系统 FB ? CALL_SFC 调用来自框的系统 FC
STEP7-功能块全中文说明资料
parator== IN1等于IN2<> IN1不等于IN2> IN1大于IN2< IN1小于IN2>= IN1大于或等于IN2<= IN1小于或等于IN22.整数就是没有小数位都是零的数,即能被1整除的数(如-1,-2,0,1,……)CMP ?I(INT)整数比较CMP ?D (DINT)比较双精度整数CMP ?R (REAL)比较实数3.转换指令概述BCD_I BCD码转换为整数I_BCD 整型转换为BCD码BCD_DI BCD码转换为双精度整数I_DINT 整型转换为长整型DI_BCD 长整型转换为BCD码DI_REAL 长整型转换为浮点型4 计数器指令S_CUD 双向计数器S_CD 降值计数器S_CU 升值计数器---( SC ) 设置计数器线圈•---( CU ) 升值计数器线圈•---( CD ) 降值计数器线圈5.S_CUD 双向计数器`6. S_CU 升值计数器7. S_CD 降值计数器8. ---( SC ) 设置计数器值9. ---( CU ) 升值计数器线圈10. ---( CD ) 降值计数器线圈11. ---(OPN)打开数据块:DB或DI如果想将数据块中的数据读出(如DB和DI),需要通过(OPN)打开数据块后才可读出。
12. ---(JMP)--- 无条件跳转13. ---(JMPN) 若“否”则跳转14. LABEL标号【整型数学运算指令】整型数学运算指令概述说明使用整数运算,您可以对两个整数(16和32位)执行以下运算:•ADD_I 加整数•SUB_I 减整型•MUL_I 乘整型•DIV_I 除整型•ADD_DI 加双精度整数•SUB_DI 减长整型•MUL_DI 乘长整型•DIV_DI 除长整型•MOD_DI 返回分数长整型15. ADD_I 整数加16. SUB_I 整数减17. MUL_I 整数乘18. DIV_I 整数除19. MOD_DI 返回长整数余数20. 浮点运算指令概述IEEE32位浮点数属于REAL数据类型。
第9章STEP7软件的使用
精选课件
15
四)参数设置
用PPI多主站编程电缆与S7一200建立通信时,常用参 数的设置如下:
(1)如图9-3所示,双击指令树“项目”目录下的图 标 ,设置PLC类型及CPU 版本
图9-3 设精置选课件PLC类型及CPU版本 16
(2)将编程设备(如PC机)的通信地址设为O,CPU的默认地 址为2。
图9-1主机与计算机连接
精选课件
13
PLC主机有两种供电方式,一种是直流供电,一种是交 流供电,但一般在购买时选择交流供电方式的CPU主机单元。 图9-2中给出了直流供电和交流供电两种CPU模块接线方 式。
图9-2 CPU主机单元的供电方式
精选课件
14
2.拆卸CPU模块或者扩展模块 如果需要拆卸CPU模块或其他扩展模块,请按以下步骤 进行: (1)关闭所有电源。 (2)拆除模块上的所有连线和电缆,主机和部分扩展模 块的端子排是可拆卸的。该功能可使得拆卸I/O工作变得简 单。如果有其他扩展模块连接在要拆卸的模块上,应打开前 盖,拔掉相邻模块的扩展扁平电缆。
“工具”——选择该类别,显示指令向导、文本 显示向导、位置控制向导、EM 253控制面板和调 制解调器扩展向导的按钮控制等。
精选课件
27
2. 指令树 提供所有项目对象和为当前程序编辑器(LAD、
FBD或STL)提供的所有指令的树型视图。 3. 交叉引用窗口
当我们希望了解程序中是否已经使用和在何处使用 某一符号名或存储区赋值时,可使用“交叉引用”表。
精选课件
38
(2)程序更名。项目文件更名:如果新建了一个 程序文件,可用“文件(File)”菜单中“另存为 (save as)”命令,然后在弹出的对话框中键入所要 取的名称。
STEP7-功能块全中文说明
parator== IN1等于IN2<> IN1不等于IN2> IN1大于IN2< IN1小于IN2>= IN1大于或等于IN2<= IN1小于或等于IN22.整数就是没有小数位都是零的数,即能被1整除的数(如-1,-2,0,1,……)CMP ?I(INT)整数比较CMP ?D (DINT)比较双精度整数CMP ?R (REAL)比较实数3.转换指令概述BCD_I BCD码转换为整数I_BCD 整型转换为BCD码BCD_DI BCD码转换为双精度整数I_DINT 整型转换为长整型DI_BCD 长整型转换为BCD码DI_REAL 长整型转换为浮点型4 计数器指令S_CUD 双向计数器S_CD 降值计数器S_CU 升值计数器---( SC ) 设置计数器线圈•---( CU ) 升值计数器线圈•---( CD ) 降值计数器线圈5.S_CUD 双向计数器`6. S_CU 升值计数器7. S_CD 降值计数器8. ---( SC ) 设置计数器值9. ---( CU ) 升值计数器线圈10. ---( CD ) 降值计数器线圈11. ---(OPN)打开数据块:DB或DI如果想将数据块中的数据读出(如DB和DI),需要通过(OPN)打开数据块后才可读出。
12. ---(JMP)--- 无条件跳转13. ---(JMPN) 若“否”则跳转14. LABEL标号【整型数学运算指令】整型数学运算指令概述说明使用整数运算,您可以对两个整数(16和32位)执行以下运算:• ADD_I 加整数• SUB_I 减整型• MUL_I 乘整型• DIV_I 除整型• ADD_DI 加双精度整数• SUB_DI 减长整型• MUL_DI 乘长整型• DIV_DI 除长整型• MOD_DI 返回分数长整型15. ADD_I 整数加16. SUB_I 整数减17. MUL_I 整数乘18. DIV_I 整数除19. MOD_DI 返回长整数余数20. 浮点运算指令概述IEEE32位浮点数属于REAL数据类型。
STEP7软件介绍及硬件组态
STEP7软件介绍及硬件组态
STEP7软件具有丰富的功能和易于使用的界面,使用户能够轻松地编
写和调试PLC程序。
它支持多种编程语言,包括梯形图、继电器逻辑图和
结构化文本编程语言。
用户可以根据自己的喜好和项目要求选择适合的编
程语言。
除了编程功能之外,STEP7还具有灵活的配置选项。
用户可以通过软
件配置PLC的硬件组态,包括输入输出模块、通信模块和扩展模块等。
通
过直观的图形界面,用户可以轻松地添加、删除和调整不同的硬件组件,
以满足项目的需要。
STEP7软件还提供了强大的调试工具,包括在线监视功能和模拟器。
在线监视功能允许用户实时监测PLC的输入和输出状态,帮助他们诊断和
解决问题。
模拟器则允许用户在实际操作PLC之前,在软件中模拟PLC的
行为,以确保程序的正确性和稳定性。
STEP7软件还具有高级功能,如网络连接和数据通信。
用户可以使用
软件轻松地建立PLC之间的通信连接,以便他们可以实现分布式控制和数
据采集。
此外,软件还支持其他设备和系统的连接,如人机界面(HMI)、数据库和企业资源计划(ERP)系统等。
总体而言,STEP7是一个功能强大、易于使用的软件,为用户提供了
全面的PLC编程和配置功能。
无论是初级用户还是经验丰富的工程师,都
可以从这个软件中获益。
不仅可以加速项目开发和调试过程,还可以提高PLC系统的性能和可靠性。
无论是在制造业、能源或建筑行业,还是在自
动化控制方面,STEP7都是一个必不可少的工具。
STEP7使用方法
STEP7使用方法对于STEP7的使用方法,我将分为以下几个方面进行详细介绍:基本概念、编程语言、硬件配置和调试工具。
一、基本概念:二、编程语言:STEP7支持多种编程语言,包括梯形图、功能块图、指令表和结构化文本。
梯形图是一种图形化的编程语言,用于逻辑控制和循环控制。
功能块图是基于块的图形化编程语言,用于组织和管理程序模块。
指令表是一种文本化的编程语言,用于编写低级控制指令。
结构化文本是一种高级编程语言,类似于传统的编程语言,可以实现复杂的逻辑和算法。
三、硬件配置:使用STEP7之前,我们需要对硬件进行配置。
首先,我们需要选择适合应用需求的PLC型号和数量。
然后,我们需要选择适合的输入和输出模块,用于接收和输出信号。
接下来,我们需要通过网络或总线连接PLC和外部设备,如传感器、执行器和人机界面。
四、调试工具:在使用STEP7编写和测试PLC程序时,我们可以使用一些调试工具来帮助我们定位和解决问题。
首先,我们可以使用在线监视器来查看PLC的运行状态和信号值。
其次,我们可以使用断点和触发器来调试程序的执行过程。
还可以使用模拟器来模拟外部设备的输入和输出,以验证程序的正确性。
最后,我们可以使用追溯记录器来记录PLC的运行日志,以便后续分析和故障排除。
总结:通过以上对STEP7使用方法的介绍,我们可以了解到,STEP7是一款强大的PLC编程软件,它可以帮助我们开发和管理PLC应用程序。
在使用STEP7之前,我们需要掌握基本的概念,并了解不同的编程语言。
同时,我们还需要对硬件进行适当的配置,并使用调试工具来帮助我们定位和解决问题。
只有熟练掌握STEP7的使用方法,我们才能更好地应用它来实现工业过程和机器的控制。
★★STEP7梯形图编程手册(中文)_带书签
其它支持
如果你有任何技术问题,你可以与当地的西门子代表处或代理商联系。 /automation/partner /service
培训中心
西门子公司还提供有许多培训课程,介绍 SIMATIC S7 自动化系统。详情请与您所在地区 的培训中心联系,或与德国纽伦堡(邮编 D90327)的总部培训中心联系: 德 国: +49 (911) 895 - 3200 北 京:(010) 6439 2860 上 海:(021) 3220 0899 - 306 广 州:(020) 8732 0088 - 2279 武 汉:(027) 8548 6688 - 6601 哈尔滨:(0451) 239 3129 重 庆:(023) 6382 8919 - 3002
传真: +1 (0) 770 740 3699
传真: +86 10 64 74 74 74
E-Mail: isd-callcenter@
E-Mail: @
GMT:
-5:00
GMT: +8:00
SIMATIC 热线和授权热线的使用语言一般为德语和英语。
前言,目录
位逻辑指令
1
SIMATIC
比较指令
2
转换指令
3
S7-300 和 S7-400 梯形逻辑
计数器指令
4
(LAD)编程
数据块指令
5
参考手册
逻辑控制指令
6
整数算术运算指令
7
浮点算术运算指令
8
赋值指令
9
程序控制指令
10
移位和循环指令
11
状态位指令
12
定时器指令
13
字逻辑指令
step7的使用方法
LOGO
基本数据类型(二)
S5TIME(SIMATIC时间) IEC时间(TIME) IEC日期(date) 日计时(TIME_OF_DAY) 字符(CHAR)
Page 20
LOGO
3.3.2复杂数据类型
日期时间数据类型( Data_And_Time ) 字符串类型(String) 数组类型Array 结构(STRUCT) 用户定义类型(UDT)
Page 10
LOGO
同步错误组织块
OB121、OB122:同步错误中断。如果在某特定的语 句执行时出现错误,CPU可以跟踪到程序中某一具体的 位置。由同步错误所触发的错误处理组织块,将作为程 序的一部分来执行,与错误出现时正在执行的块具有相 同的优先级。
编程错误,例如在程序中调用一个不存在的块,将调用 OB121。
使用S7-300PLC实现一台电动机的正反转控制。控制要求如下:要求 能实现电机的正转和反转控制,并能进行正反转的直接切换。另外 ,还可进行正反向的点动控制,当电机处于正常运行时,点动按钮 不起作用。
Page 46
(2) OB101为再启动类型(热启动)。启动时,所有数据(无论是 保持型和非保持型)都将保持原状态,并且将OB101中的程序执行一次 。然后程序从断点处开始执行。剩余循环执行完以后,开始执行循环程 序。热启动一般只有S7-400具有此功能。
(3) OB102为冷启动方式。CPU318-2和CPU417-4具有冷启动型的 启动方式,冷启动时,所有过程映像区和标志存储器、定时器和计数器 (无论是保持型还是非保持型)都将被清零,而且数据块的当前值被装 载存储器的原始值覆盖。然后将OB102中的程序执行一次后执行循环程 序。
访问错误,例如程序中访问了一个有故障或不存在的模 块,将调用OB122。
第七章STEP7编程软件的使用方法7
双击DB1就可以打开并对DB1进行编辑, DB编辑器分为了“数据视图”和“说明视图”, 在“说明视图”下, 只能看到DB的数据定义, 在“数据视图”下, 还可以 对值进行修改。通过【查看】菜单在两种视图间切换。DB1和DB2的设置如图7-34所示。
7 编辑OB1 双击OB1, 选择LAD(梯形图)编程方式, 打开OB1, 对OB1进行编辑
直接建立的项目只包含一个MPI子网对象, 用户需要通过【插入】菜单来手动添家对象.用户可以插入一个PLC站, 先进行硬件组态, 完成硬件组态后, 再在相应 CPU的S7程序目录下编辑用户程序;也可以先插入一个独立的S7程序, 编写用户程序, 再进行硬件组态, 等组态完成后将程序复制到相应的 CPU中。
3.PG/PC接口设置 PG/PC接口(PG/PC Interface)是PG/PC和PLC之间进行通讯连接的接口。PG/PC支持多种类型的接口,每种接口都需要进行相应的参数设置(如通讯的波率 等)。因此,要实现PG/PC和PLC之间的通讯连接,必须正确地设置PG/PC接口。 SETP7的安装过程中,会提示用户设置PG/PC接口参数。在安装完成之后,可以通过以下几种方法打开PG/PC设置对话框: Windows的【开始】|【SIMATIC】|【STEP7】|【设置PG-PC接口】 Windows的【控制面板】|【设置PG-PC接口】 在【SIMATIC Manager】中,通过菜单【选项】|【设置PG/PC接口】
第七章 STEP7编程软件的使用 方法
• 7.1 用户程序的基本结构 • 7.2 STEP7编程软件简介 • 7.3 硬件组态 • 7.4 使用LAD编程
• 一般来说,PLC有线性化编程、模块化编程和结构化编程等3种程 序设计方法。
• 1.线性化编程 • 线性化编程类似硬件继电器控制电路,整个系统的控制程序放在主
STEP7_功能块说明
parator== IN1等于IN2<> IN1不等于IN2> IN1大于IN2< IN1小于IN2>= IN1大于或等于IN2<= IN1小于或等于IN22.整数就是没有小数位都是零的数,即能被1整除的数(如-1,-2,0,1,……)CMP ?I(INT)整数比较CMP ?D (DINT)比较双精度整数CMP ?R (REAL)比较实数3.转换指令概述BCD_I BCD码转换为整数I_BCD 整型转换为BCD码BCD_DI BCD码转换为双精度整数I_DINT 整型转换为长整型DI_BCD 长整型转换为BCD码DI_REAL 长整型转换为浮点型4 计数器指令S_CUD 双向计数器S_CD 降值计数器S_CU 升值计数器---( SC ) 设置计数器线圈•---( CU ) 升值计数器线圈•---( CD ) 降值计数器线圈5.S_CUD 双向计数器`6. S_CU 升值计数器7. S_CD 降值计数器8. ---( SC ) 设置计数器值9. ---( CU ) 升值计数器线圈10. ---( CD ) 降值计数器线圈11. ---(OPN)打开数据块:DB或DI如果想将数据块中的数据读出(如DB和DI),需要通过(OPN)打开数据块后才可读出。
12. ---(JMP)--- 无条件跳转13. ---(JMPN) 若“否”则跳转14. LABEL标号【整型数学运算指令】整型数学运算指令概述说明使用整数运算,您可以对两个整数(16和32位)执行以下运算:•ADD_I 加整数•SUB_I 减整型•MUL_I 乘整型•DIV_I 除整型•ADD_DI 加双精度整数•SUB_DI 减长整型•MUL_DI 乘长整型•DIV_DI 除长整型•MOD_DI 返回分数长整型15. ADD_I 整数加16. SUB_I 整数减17. MUL_I 整数乘18. DIV_I 整数除19. MOD_DI 返回长整数余数20. 浮点运算指令概述IEEE32位浮点数属于REAL数据类型。
step7编程语言
用这种编程语言。功能块图在STEP 7 V3.0版本后提供。
• LAD(梯形图)
• FBD(功能块图) • STL(语句表)
选择编程语言
LAD/FBD => STL可以把图形化编程语言编写的程序转换成语句表。但是,应该知道这种转换在语句表中不是最有效的程序。
STL=>LAD/FBD 不是所有的语句表程序都能转换成LAD或 FBD。不能转换的程序仍用语句表显示。在转换中不会丢失程序。
目录 页
STEP 7编程语言 …………................................................................................................................. 2 启动LAD/STL/FBD 编辑器 ................................................................................................................. 3
编辑器
编程元件 当采用LAD和FBD编程语言时,可以用工具条插入简单的程序元件。
点击“程序元件”图标打开另一个包含更多程序元件的窗口。该窗口的内容根据所选择的编程语言(LAD/FBD/STL)而不同。
2x
SIMATIC S7
Siemens AG 2000. All rights reserved.
STEP 7 编程方法
(接受)
96.0 to 99.7
100.0 to 103.7
104.0 to 107.7
108.0 to 111.7
112.0 to 115.7
116.0 to 119.7
120.0 to 123.7
124.0 to 127.7
PS 机架 2
IM
(接受)
64.0 to 67.7
68.0 to 70.7
模块化编程
OB 1 FC 1 电机控制 电机控制 FC 2 信息 信息
FC 3 取得操作小时数 取得操作小时数
SIMATIC S7
Siemens AG 2000. All rights reserved.
Date: 2009-03-28 File No.: SSP1_03C.5
Information and Training Center Knowledge for Automation
2
3
SIMATIC S7
Siemens AG 2000. All rights reserved.
Date: 2009-03-28 File No.: SSP1_03C.18
Information and Training Center Knowledge for Automation
S7-300模拟量模块的寻址
Information and Training Center Knowledge for Automation
循环程序执行
启动块 (OB 100) 上电后执行一次 输入 模块
循环监视时间的开始
从模块读信号状态,并保存到过程映象区 (PII)
CPU 循环
执行OB1中的程序 (循环执行) 事件 (日期时间中断、硬件中断等) 调用其他 OB,FB,FC
STEP7-功能块全中文说明全解课件.doc
parator== IN1等于IN2<> IN1不等于IN2> IN1大于IN2< IN1小于IN2>= IN1大于或等于IN2<= IN1小于或等于IN22.整数就是没有小数位都是零的数,即能被1整除的数(如-1,-2,0,1,……)CMP ?I(INT)整数比较CMP ?D (DINT)比较双精度整数CMP ?R (REAL)比较实数3.转换指令概述BCD_I BCD码转换为整数I_BCD 整型转换为BCD码[新^&版@版新]BCD_DI BCD码转换为双精度整数I_DINT 整型转换为长整型DI_BCD 长整型转换为BCD码DI_REAL 长整型转换为浮点型4 计数器指令S_CUD 双向计数器S_CD 降值计数器[新版^@%*新]S_CU 升值计数器---( SC ) 设置计数器线圈•---( CU ) 升值计数器线圈•---( CD ) 降值计数器线圈5.S_CUD 双向计数器`6. S_CU 升值计数器7. S_CD 降值计数器8. ---( SC ) 设置计数器值9. ---( CU ) 升值计数器线圈[新新&@^#版]10. ---( CD ) 降值计数器线圈11. ---(OPN)打开数据块:DB或DI如果想将数据块中的数据读出(如DB和DI),需要通过(OPN)打开数据块后才可读出。
12. ---(JMP)--- 无条件跳转13. ---(JMPN) 若“否”则跳转14. LABEL标号【整型数学运算指令】整型数学运算指令概述[新*新^版@版]说明使用整数运算,您可以对两个整数(16和32位)执行以下运算:•ADD_I 加整数•SUB_I 减整型•MUL_I 乘整型•DIV_I 除整型•ADD_DI 加双精度整数•SUB_DI 减长整型•MUL_DI 乘长整型•DIV_DI 除长整型•MOD_DI 返回分数长整型15. ADD_I 整数加16. SUB_I 整数减17. MUL_I 整数乘[新版版@#&新]18. DIV_I 整数除[新版%^@&~]19. MOD_DI 返回长整数余数20. 浮点运算指令概述IEEE32位浮点数属于REAL数据类型。
step7基本讲解
教学内容
备注
3.1.2置位/复位指令
置位/复位指令根据RLO的值,来决定被寻址位的信号状态是否需要改变。若RLO的值为1,被寻址位的信号状态被置1或清0;若RLO是0,则被寻址位的信号保持原状态不变。对于置位操作,一旦RLO为1,则被寻址信号(输出信号)状态置1,即使RLO又变为0,输出仍保持为1;对于复位操作,一旦RLO为1,则被寻址信号(输出信号)状态置0,即使RLO又变为0,输出仍保持为0。
例3.1.14
若CPU检测到输入I1.0有一个正跳沿,将使得输出Q4.0的线圈在一个扫描周期内通电。对输入I1.0常开触点扫描的RLO值(在本例中,此RLO正好与输入I1.0的信号状态相同)存放在存储位M1.0中。
在OB1的扫描周期中,CPU对I1.0信号状态扫描并形成RLO值,若该RLO值是1且存放在M1.0中的上次RLO值是0,这说明FN指令检测到一个RLO的正跳沿,那么FP指令把RLO位置1。如果RLO在相邻的两个扫描周期中相同(全为1或0),那么FP语句把RLO位清0。
下降沿信号识别指令
若CPU检测到输入有一个负跳沿,将使得输出线圈在一个扫描周期内通电。对输入扫描的RLO值存放在存储位中。
在OB1的扫描周期中,CPU扫描并形成RLO值,若该RLO值是0且上次RLO值是1,这说明FN指令检测到一个RLO的负跳沿,那么FN指令把RLO位置1。如果RLO在相邻的两个扫描周期中相同(全为1或0),那么FN语句把RLO位清0。
位逻辑指令的运算规则:“先与后或”。
可以用括号将需先运算的部分括起来,运算规则为:
“先括号内,后括号外”。
梯形图LAD表示的基本位逻辑指令
---||---NormallyOpenContact(Address)常开触点
STEP7编程软件的使用方法
第4章STEP 7编程软件的使用方法4.1.1 STEP 7概述STEP 7用于S7,M7,C7,WinAC的编程、监控和参数设置,基于STEP 7 V5.2版。
STEP 7具有以下功能:硬件配置和参数设置、通信组态、编程、测试、启动和维护、文件建档、运行和诊断功能等。
4.1.2 STEP 7的硬件接口PC./MPI适配器+RS-232C通信电缆。
计算机的通信卡CP 5611(PCI卡)、CP 5511或CP 5512(PCMCIA卡)将计算机连接到MPI或PROFIBUS网络。
计算机的工业以太网通信卡CP 1512(PCMCIA卡)或CP 1612(PCI卡),通过工业以太网实现计算机与PLC的通信。
STEP 7的授权在软盘中。
STEP 7光盘上的程序AuthorsW用于显示、安装和取出授权。
4.1.4 STEP 7的编程功能1.编程语言3种基本的编程语言:梯形图(LAD)、功能块图(FBD) 和语句表(STL)。
S7-SCL (结构化控制语言) ,S7-GRAPH(顺序功能图语言),S7 HiGraph和CFC。
2.符号表编辑器3.增强的测试和服务功能设置断点、强制输入和输出、多CPU运行(仅限于S7-400),重新布线、显示交叉参考表、状态功能、直接下载和调试块、同时监测几个块的状态等。
程序中的特殊点可以通过输入符号名或地址快速查找。
4.STEP 7的帮助功能按F1键便可以得到与它们有关的在线帮助。
菜单命令“Help→contents”进入帮助窗口。
4.1.5 STEP 7的硬件组态与诊断功能1.硬件组态(1)系统组态:选择硬件机架,模块分配给机架中希望的插槽。
(2)CPU的参数设置。
(3)模块的参数设置。
可以防止输入错误的数据。
2.通信组态(1)网络连接的组态和显示;(2)设置用MPI 或PROFIBUS-DP连接的设备之间的周期性数据传送的参数。
(3)设置用MPI、PROFIBUS或工业以太网实现的事件驱动的数据传输,用通信块编程。
STEP7使用方法
STEP7使用方法在计算机领域中,STP(Spanning Tree Protocol)是一个用于在以太网中构建回路自由的树状拓扑的协议。
在这篇文章中,我们将学习如何使用STP协议来确保网络的高可用性和性能。
首先,我们需要了解一些STP的基本概念。
在一个以太网中,可能会存在多个路径连接两个节点,这可能会导致回路产生,进而造成网络故障。
STP通过选择一条路径作为主路径,并禁用其他路径来消除回路。
为了实现这一点,STP引入了一个根(Root)桥的概念,在整个网络中只有一个根桥,并且所有的数据都会尽量经过根桥。
在STP中,桥指的是网络设备,可以是交换机或路由器。
在使用STP之前,我们需要了解网络中各个设备的桥优先级和MAC地址。
桥优先级是一个16位的参数,它用于选择根桥。
MAC地址是一个6字节的标识符,用于唯一标识设备。
每个设备都有一个优先的MAC地址,当两个设备的桥优先级相同时,MAC地址较小的设备将成为根桥。
在配置STP之前,我们需要将所有设备连接到网络并检查各个设备的MAC地址和桥优先级。
为了进行配置,我们需要登录到每个设备的管理界面。
通常,我们可以通过浏览器访问设备的IP地址来进入设备的管理界面。
一旦进入了设备的管理界面,我们需要找到STP的配置选项。
在大多数设备中,STP的配置选项可以在“网络设置”或“交换机设置”中找到。
具体的位置和名称可能会因设备而异。
在STP的配置选项中,我们可以设置桥优先级、端口优先级和端口状态。
桥优先级参数用于选择根桥,我们可以将优先级设置为一个较低的值以确保设备成为根桥。
端口优先级参数用于选择设备上的主路径,我们可以将端口优先级设置为一个较低的值以确保该端口成为主路径。
端口状态参数用于选择是否启用该端口,我们可以将端口状态设置为启用或禁用,禁用的端口将不会用于传输数据。
在配置STP时,我们需要确保所有设备的配置是一致的。
我们可以使用STP协议在设备之间自动交换配置信息,或者手动配置每个设备以确保一致。
STEP7常用功能块说明
STEP7常用功能块说明STEP7 常用功能块说明1. SFB0 "CTU" SFB1 "CTD" SFB2 "CTUD" SFB4 "TON" SFB5 TOF兼容IEC61131-3的计数和计时功能块2. SFB41 "CONT_C" SFB42 "CONT_S" SFB43 "PULSEGEN"用于PID控制41---连续42---离散43---用于将一个模拟量转化为与之对应的周期性开关量脉冲信号,该脉冲的占空比与模拟量的数值大小成正比.3. SFC0 "SET_CLK" SFC1 "READ_CLK"用于读写PLC中的系统时间4. SFC14 "DPRD_DAT" SFC15 "DPWR_DA T"用于读写DP从站中的一致性数据如:读写用DP通讯的变频器中的控制字5. SFC20 "BLKMOV" SFC21 "FILL"块拷贝,块填充6. SFC46 "STP" SFC47 "WAIT"SFC46 使PLC进入STOP状态,挺有用的:可以当软件陷阱,或利用上位控制PLC停机7. SFC60 "GD_SND" SFC61 "GD_RCV"MPI的GD通讯8.IEC Function BlocksFC22 "LIMIT" FC25 "MAX" FC27 "MIN"FC22 ---限幅输出FC25,FC27 --- 3个数比大小9.PID Control BlocksFB41/42/43 同SFB41 "CONT_C" SFB42 "CONT_S" SFB43 "PULSEGEN"FB58 "TCON_CP" FB59 "TCONT_S" 用于温度控制PID10.Ti-S7 Converting BlocksFC105 "SCALE" FC106 "UNSCALE"模拟量输入输出的比例和数据类型转换11、SFC1 读取系统时钟12、SFC3 启动/停止运行时间定时器13、OB1:主程序循环14、OB10--OB17:在设置的日期和时间启动15、OB20--OB23:延时后启动16、OB30--OB38:以设定的时间为周期17、OB40--OB47:检测到来自外部模块的中断请求时启动18、OB55:DPV1中断(PROFIBUS-DP中断)目录1 组织块1-11.1 组织块(OB)概述................................................................................................ 1-11.2 程序循环组织块(OB1)....................................................................................... 1-41.3 时钟中断组织块(OB10到OB17) ....................................................................... 1-61.4 时间延迟中断组织块(OB20 到OB23).............................................................. 1-101.5 周期性中断组织块(OB30 到OB38) ................................................................. 1-121.6 硬件中断组织块(OB40到OB47) ..................................................................... 1-141.7 状态中断OB(OB 55)........................................................................................ 1-161.8 更新中断OB(OB 56)........................................................................................ 1-171.9 制造商特定中断OB(OB57).............................................................................. 1-181.10 多值计算中断组织块(OB60)............................................................................ 1-191.11 同步周期性中断OB(OB 61 到OB 64)............................................................... 1-211.12 I/O冗余出错OB(OB70).................................................................................... 1-221.13 CPU冗余出错OB(OB72)................................................................................. 1-241.14 通讯冗余出错OB(OB73) ................................................................................. 1-271.15 时间出错组织块(OB80)................................................................................... 1-281.16 电源出错组织块(OB81)................................................................................... 1-301.17 诊断中断组织块(OB82)................................................................................... 1-321.18 插入/删除模块中断组织块(OB83) ................................................................... 1-341.19 CPU硬件故障组织块(OB84) ........................................................................... 1-371.20 优先级出错组织块(OB85) ............................................................................... 1-381.21 机架故障组织块(OB86)................................................................................... 1-421.22 通讯出错组织块(OB87)................................................................................... 1-451.23 处理中断OB(OB 88)........................................................................................ 1-471.24 后台组织块(OB90) .......................................................................................... 1-481.25 启动组织块(OB100、OB101和OB102) .......................................................... 1-501.26 编程出错组织块(OB121)................................................................................. 1-551.27 I/O访问出错组织块(OB122) ............................................................................ 1-572 SFC的公共参数2-12.1 通过输出参数RET_V AL判断出错...................................................................... 2-12.2 异步SFC的REQ、RET_V AL和BUSY参数的含义............................................. 2-4目录用于S7-300/400系统和标准功能的系统软件x A5E00446508-013 复制功能和块功能3-13.1 使用SFC20 “BLKMOV”复制存储区域............................................................... 3-1 3.2 使用SFC81 “UBLKMOV”不间断地复制变量..................................................... 3-4 3.3 使用SFC21 “FILL”初始化存储区....................................................................... 3-6 3.4 使用SFC22 “CREAT_DB”创建数据块............................................................... 3-83.5 使用SFC23 “DEL_DB”删除数据块.................................................................. 3-10 3.6 使用SFC24 “TEST_DB”测试数据块................................................................ 3-123.7 使用SFC25 “COMPRESS”压缩用户存储器.................................................... 3-133.8 使用SFC44 “REPL_V AL”传送一个替换值到累加器1...................................... 3-15 3.9 使用SFC82 “CREA_DBL”在装载存储器中生成数据块................................... 3-16 3.10 使用SFC83 “READ_DBL”从装载存储器的数据块中读取数据........................ 3-19 3.11 使用SFC84 “WRIT_DBL”在装载存储器中写入数据块.................................... 3-213.12 使用SFC85 “CREA_DB”创建数据块............................................................... 3-234 用于控制程序执行的SFC 4-14.1 使用SFC43 “RE_TRIGR”重新触发循环时间监视............................................. 4-1 4.2 使用SFC46 “STP”将CPU切换为STOP............................................................. 4-1 4.3 使用SFC47 “WAIT”延时用户程序执行.............................................................. 4-2 4.4 使用SFC35 “MP_ALM”触发多处理器中断........................................................ 4-34.5 使用SFC104 “CiR”控制CiR............................................................................... 4-45 用于处理系统时钟的SFC 5-15.1 使用SFC0 “SET_CLK”设定TOD....................................................................... 5-1 5.2 使用SFC1 “READ_CLK”读取时间.................................................................... 5-2 5.3 使用SFC48 “SNC_RTCB”同步子时钟.............................................................. 5-35.4 使用SFC100 “SET_CLKS”设定时间日期和TOD状态....................................... 5-46 用于处理运行系统计时器的SFC 6-16.1 运行时间定时器................................................................................................. 6-16.2 使用SFC101 “RTM”控制运行时间定时器.......................................................... 6-2 6.3 使用SFC2 “SET_RTM”设置运行时间定时器..................................................... 6-4 6.4 使用SFC3 “CTRL_RTM”启动和停止运行时间定时器....................................... 6-5 6.5 使用SFC4 “READ_RTM”读取运行时间定时器.................................................. 6-66.6 使用SFC64 “TIME_TCK”读取系统时间............................................................ 6-77 用于传送数据记录的SFC 7-17.1 读写一条数据记录............................................................................................. 7-17.2 使用SFC54 “RD_DPARM”读取定义的参数...................................................... 7-3 7.3 使用SFC102 “RD_DPARA”读取预定义参数..................................................... 7-4 7.4 使用SFC55 “WR_PARM”写动态参数............................................................... 7-5 7.5 使用SFC56 “WR_DPARM”写一条数据记录...................................................... 7-7 7.6 用SFC57 “PARM_MOD”将参数分配给模块..................................................... 7-8 7.7 使用SFC58 “WR_REC”写入数据记录............................................................. 7-11 7.8 使用SFC59 “RD_REC”读一个数据记录.......................................................... 7-13 7.9 SFC 55到59的进一步出错信息....................................................................... 7-18目录用于S7-300/400系统和标准功能的系统软件A5E00446508-01 xi8 符合PNO AK 1131的DPV1 SFB 8-18.1 使用SFB “RDREC”从DP从站读一个数据记录.................................................. 8-1 8.2 使用SFB53“WRREC”将数据记录写入DP从站.................................................. 8-3 8.3 用SFB54“RALRM”STATUS[3]从DP从站接收中断.......................................... 8-58.4 用SFB75“SALRM”向DP主站发送中断............................................................ 8-149 用于处理时钟中断的SFC 9-19.1 处理时钟中断.................................................................................................... 9-19.2 SFC 28到31的特征........................................................................................... 9-29.3 使用SFC28 “SET_TINT”设置日时钟中断.......................................................... 9-4 9.4 使用SFC29 “CAN_TINT”取消时钟中断............................................................. 9-5 9.5 使用SFC30 “ACT_TINT”激活时钟中断............................................................. 9-6 9.6 使用SFC31 “QRY_TINT”查询日时钟中断......................................................... 9-710 用于处理延时中断的SFC 10-110.1 处理延时中断.................................................................................................. 10-110.2 使用SFC32 “SRT_DINT”启动延时中断........................................................... 10-3 10.3 使用SFC34 “QRY_DINT”查询日时钟中断...................................................... 10-410.4 使用SFC33 “CAN_DINT”取消延时中断.......................................................... 10-511 用于处理同步出错的SFC 11-111.1 屏蔽同步出错.................................................................................................. 11-111.2 使用SFC36 “MSK_FLT”屏蔽同步出错.......................................................... 11-10 11.3 使用SFC37 “DMSK_FLT”解除屏蔽同步出错................................................ 11-1111.4 使用SFC38 “READ_ERR”读取出错寄存器................................................... 11-1212 用于处理中断和异步出错的SFC 12-112.1 延迟和禁用中断和异步出错............................................................................. 12-112.2 使用SFC39 “DIS_IRT”禁用新中断和异步出错的处理..................................... 12-3 12.3 使用SFC40 “EN_IRT”启用新中断和异步出错的处理...................................... 12-5 12.4 使用SFC41 “DIS_AIRT”延迟更高优先级中断和异步出错的处理.................... 12-712.5 使用SFC42 “EN_AIRT”启用处理较高优先级的中断和异步出错..................... 12-813 用于诊断的SFC 13-113.1 系统诊断......................................................................................................... 13-113.2 使用SFC6 “RD_SINFO”读取OB启动信息....................................................... 13-1 13.3 使用SFC51 “RDSYSST”读取系统状态列表或部分列表.................................. 13-4 13.4 使用SFC52 “WR_USMSG”将自定义诊断事件写入诊断缓冲区................... 13-10 13.5 使用SFC78 “OB_RT”确定OB程序运行时间.................................................. 13-14 13.6 使用SFC87 “C_DIAG”诊断当前连接状态...................................................... 13-1813.7 使用SFC103 “DP_TOPOL”识别DP主站系统的总线拓扑.............................. 13-2314 用于更新过程映像和处理位域的SFC和SFB 14-114.1 使用SFC26 “UPDA T_PI”更新过程映像输入表................................................ 14-1 14.2 使用SFC27 “UPDA T_PO”更新过程映像输出表.............................................. 14-3 14.3 使用SFC79 “SET”在I/O区域中设置位域......................................................... 14-5 14.4 使用SFC 126 “SYNC_PI”在同步循环中更新过程映像分区输入表................. 14-6 14.5 使用SFC 127 “ISO_PO”在同步循环中更新过程映像分区输出表.................... 14-8 14.6 使用SFC80 “RSET”复位I/O区域中的位域..................................................... 14-10 14.7 使用SFB 32 “DRUM”实现一个操作序列....................................................... 14-11目录用于S7-300/400系统和标准功能的系统软件xii A5E00446508-0115 用于寻址模块的系统功能15-115.1 使用SFC5 “GADR_LGC”查询模块的逻辑基址................................................ 15-1 15.2 使用SFC49 “LGC_GADR”查询属于一个逻辑地址的模块插槽....................... 15-315.3 使用SFC50 “RD_LGADR”查询模块的所有逻辑地址...................................... 15-516 用于分布式I/O的SFC 16-116.1 使用SFC7 “DP_PRAL”在DP主站上触发硬件中断.......................................... 16-1 16.2 用SFC11 “DPSYC_FR”同步DP从站组........................................................... 16-4 16.3 用SFC12 “D_ACT_DP”激活和取消激活DP从站........................................... 16-10 16.4 用SFC13 “DPNRM_DG”读取DP从站的诊断数据(从站诊断) ........................ 16-1416.5 使用SFC14 “DPRD_DAT”读取DP标准从站的连续数据................................ 16-1816.6 使用SFC15 “DPWR_DAT”将连续数据写入到DP标准从站........................... 16-2017 用于全局数据通讯的SFC 17-117.1 使用SFC60 “GD_SND”发送一个GD信息包.................................................... 17-117.2 通过SFC61 “GD_RCV”编程接受已接收到的GD信息包.................................. 17-418 通讯和S7基本通讯的概述18-118.1 S7通讯块和S7基本通讯块之间的差别............................................................ 18-118.2 数据的一致性.................................................................................................. 18-418.3 S7通讯块概述................................................................................................. 18-618.4 用于S7基本通讯的功能块总览........................................................................ 18-819 S7通讯19-119.1 用于S7通讯的SFB/FB和SFC/FC的公用参数.................................................. 19-119.2 用于组态的S7连接的SFB启动例行程序.......................................................... 19-519.3 SFB对故障如何反应........................................................................................ 19-719.4 通过SFB8/FB8“USEND”进行无协调的数据发送............................................. 19-9 19.5 通过SFB/FB9“URCV”进行无协调的数据接收............................................... 19-12 19.6 通过SFB/FB12 “BSEND”发送分段数据........................................................ 19-15 19.7 通过SFB/FB13 “BRCV”接收分段数据........................................................... 19-18 19.8 通过SFB/FB15“PUT”向远程CPU写入数据................................................... 19-21 19.9 通过SFB/FB14GET”从远程CPU中读取数据................................................. 19-2419.10 使用SFB16“PRINT”将数据发送到打印机...................................................... 19-27 19.11 通过SFB 19“START”在远程设备上开始一个暖重启或冷重启...................... 19-33 19.12 通过SFB 20“STOP”将远程设备切换到STOP状态........................................ 19-36 19.13 通过SFB 21“RESUME”在远程设备上开始一个热重启.................................. 19-38 19.14 使用SFB 22“STA TUS”查询远程伙伴的状态................................................. 19-40 19.15 通过SFB23 “USTATUS”接收远程设备的状态改变....................................... 19-42 19.16 通过SFC62 “CONTROL”查询属于SFB实例的连接状态............................... 19-44 19.17 通过FC62 “C_CNTRL”查询连接状态............................................................ 19-46 19.18 S7通讯SFB/FB的工作存储器要求................................................................. 19-48目录用于S7-300/400系统和标准功能的系统软件A5E00446508-01 xiii20 用于未组态S7连接的通讯SFC 20-120.1 通讯SFC的公用参数....................................................................................... 20-120.2 用于未组态S7连接的通讯SFC的出错信息...................................................... 20-220.3 使用SFC65 “X_SEND”将数据发送给在本地S7站外的一个通讯伙伴.............. 20-7 20.4 通过SFC66 “X_RCV”从本地S7站以外的通讯伙伴中接收数据....................... 20-8 20.5 通过SFC68 “X_PUT”将数据写入本地S7站以外的通讯伙伴.......................... 20-11 20.6 通过SFC67 “X_GET”从本地S7站以外的通讯伙伴中读取数据..................... 20-13 20.7 通过SFC69 “X_ABORT”中止已存在的、到本地S7站以外的通讯伙伴的连接20-15 20.8 使用SFC72 “I_GET”从本地S7站内的一个通讯伙伴上读取数据.................... 20-16 20.9 使用SFC73 “I_PUT”将数据写入到本地S7站内的一个通讯伙伴.................... 20-1820.10 通过SFC74 “I_ABORT”中止已存在的、到本地S7站内的通讯伙伴的连接.... 20-2021 PROFInet 21-121.1 SFC112、113和114背景信息......................................................................... 21-121.2 使用SFC112 “PN_IN”更新用于PROFInet组件的用户程序接口的输入........... 21-4 21.3 使用SFC113 “PN_OUT”更新用于PROFInet组件的用户程序接口的输出....... 21-521.4 使用SFC114 “PN_DP”更新DP互连................................................................ 21-622 生成与块相关的消息22-122.1 关于使用SFB生成块相关消息的介绍.............................................................. 22-122.2 使用SFB 36 “NOTIFY”生成无需确认的块相关消息........................................ 22-5 22.3 使用SFB31 “NOTIFY_8P”生成无确认显示的块相关消息............................... 22-7 22.4 使用SFB 33 “ALARM”生成需要确认的块相关消息....................................... 22-10 22.5 使用SFB35 “ALARM_8P”生成针对八个信号的带有关联值的块相关消息..... 22-13 22.6 使用SFB34 “ALARM_8”生成针对八个信号的不附带关联值的块相关消息.... 22-16 22.7 使用SFB37 “AR_SEND”发送归档数据......................................................... 22-18 22.8 使用SFC10 “DIS_MSG”禁止与块相关的消息、与符号相关的消息以及组状态消息................................................................ 22-2022.9 使用SFC9 “EN_MSG”启用块相关、符号相关和组状态消息......................... 22-22 22.10 用于生成与块相关的消息的SFB的启动特性................................................. 22-24 22.11 用于生成与块相关的消息的SFB如何响应故障.............................................. 22-25 22.12 使用SFC生成与块相关的消息简介................................................................ 22-26 22.13 使用SFC17 “ALARM_SQ”生成可确认的与块相关的消息以及使用SFC18 “ALARM_S”生成永久确认的与块相关的消息................................................ 22-2922.14 使用SFC19 “ALARM_SC”查询上一ALARM_SQ/ALARM_DQ进入事件消息的确认状态.......................................................... 22-3222.15 使用SFC 107 “ALARM_DQ”和108 “ALARM_D”生成可确认和永久确认的块相关消息............................................................ 22-3322.16 使用SFC105 “READ_SI”读取动态系统资源.................................................. 22-3522.17 使用SFC106 “READ_SI”读取动态系统资源.................................................. 22-3823 IEC定时器和IEC计数器23-123.1 使用SFB 3“TP”生成一个脉冲.......................................................................... 23-1 23.2 使用SFB 4“TON”生成一个接通延迟................................................................ 23-3 23.3 使用SFB 5“TOF”生成一个关闭延迟................................................................ 23-5 23.4 使用SFB 0 “CTU”递增计数............................................................................. 23-7 23.5 使用SFB 1 “CTD”递减计数............................................................................. 23-8 23.6 使用SFB2 “CTUD”递增/递减计数................................................................... 23-9目录用于S7-300/400系统和标准功能的系统软件xiv A5E00446508-0124 IEC功能24-124.1 概述................................................................................................................. 24-124.2 IEC功能的技术数据......................................................................................... 24-324.3 日期和时间作为复杂数据类型......................................................................... 24-524.4 时间功能......................................................................................................... 24-624.5 比较DATE_AND_TIME变量......................................................................... 24-1024.6 比较STRING变量.......................................................................................... 24-1324.7 编辑数值....................................................................................................... 24-1624.8 STL示例........................................................................................................ 24-1724.9 STL示例........................................................................................................ 24-1824.10 编辑STRING变量.......................................................................................... 24-1924.11 转换数据类型格式......................................................................................... 24-2425 用于集成控制的SFB 25-125.1 使用SFB41/FB41 “CONT_C”实现连续控制.................................................... 25-1 25.2 使用SFB42/FB42 “CONT_S”进行步控制........................................................ 25-8 25.3 使用SFB43/FB43 “PULSEGEN”生成脉冲.................................................... 25-1425.4 PULSEGEN块的实例.................................................................................... 25-2526 用于紧凑型CPU的SFB 26-126.1 通过SFB44 “Analog”使用模拟量输出进行定位............................................... 26-1 26.2 通过SFB46 “DIGITAL”使用数字量输出进行定位.......................................... 26-13 26.3 使用SFB47 “COUNT”控制计数器................................................................. 26-23 26.4 使用SFB48 “FREQUENC”控制频率测量...................................................... 26-28 26.5 使用SFB49 “PULSE”控制脉宽调制............................................................... 26-32 26.6 使用SFB60 “SEND_PTP”发送数据(ASCII,3964(R)) .................................. 26-35 26.7 使用SFB61 “RCV_PTP”接收数据(ASCII,3964(R)) .................................... 26-38 26.8 使用SFB62 “RES_RCVB”删除接收缓冲区(ASCII,3964(R))...................... 26-41 26.9 使用SFB63 “SEND_RK”发送数据(512(R)) ................................................... 26-43 26.10 使用SFB64 “FETCH RK”获取数据(RK 512) ................................................. 26-47 26.11 使用SFB65 “SERVE_RK”接收和提供数据(RK 512) ..................................... 26-5226.12 SFB 60至65的附加出错信息......................................................................... 26-5727 用于H CPU的SFC 27-127.1 在H系统中使用SFC90 “H_CTRL”控制操作.................................................... 27-128 集成功能(对于带集成I/O的CPU) 28-128.1 SFB29(HS_COUNT)....................................................................................... 28-128.2 SFB30(FREQ_MES)....................................................................................... 28-328.3 SFB38(HSC_A_B).......................................................................................... 28-428.4 SFB39(POS)................................................................................................... 28-529 Plastics Techology 29-129.1 SFC63 (AB_CALL) ......................................................................................... 29-130 诊断数据30-130.1 诊断数据结构概述........................................................................................... 30-130.2 诊断数据......................................................................................................... 30-230.3 通道专有诊断数据的结构................................................................................ 30-4目录用于S7-300/400系统和标准功能的系统软件A5E00446508-01 xv31 系统状态列表(SSL) 31-131.1 系统状态列表(SSL)概述.................................................................................. 31-131.2 部分SSL列表的结构........................................................................................ 31-331.3 SSL-ID ............................................................................................................ 31-431.4 可能的部分系统状态列表................................................................................ 31-531.5 SSL-ID W#16#xy11 - 模块标识...................................................................... 31-631.6 SSL-ID W#16#xy12 - CPU特征...................................................................... 31-731.7 SSL-ID W#16#xy13 - 存储区域...................................................................... 31-931.8 SSL-ID W#16#xy14 - 系统区........................................................................ 31-1031.9 SSL-ID W#16#xy15 - 块类型........................................................................ 31-1231.10 SSL-ID W#16#xy19 - 模块LED的状态.......................................................... 31-13 31.11 SSL-ID W#16#xy1C - 组件标识.................................................................... 31-15 31.12 SSL ID W#16#xy25 - 将过程映像分区分配到OB.......................................... 31-18 31.13 SSL-ID W#16#xy32 - 通讯状态数据............................................................. 31-21 31.14 SSL-ID W#16#0132,索引为W#16#0005的部分列表的数据记录摘录....... 31-22 31.15 SSL-ID W#16#0132,索引为W#16#0008的部分列表的数据记录摘录....... 31-23 31.16 SSL-ID为W#16#0132、索引为W#16#000B的部分列表摘录的数据记录.... 31-25 31.17 SSL-ID为W#16#0132、索引为W#16#000C的部分列表摘录的数据记录.... 31-26 31.18 SSL-ID W#16#0232,索引为W#16#0004的部分列表的数据记录摘录....... 31-27 31.19 SSL-ID W#16#xy71 - H CPU的组信息......................................................... 31-28 31.20 SSL-ID W#16#xy74 - 模块LED的状态.......................................................... 31-31 31.21 SSL-ID W#16#xy75 - H系统中切换的DP从站.............................................. 31-33 31.22 SSL-ID W#16#xy90 - DP主站系统信息........................................................ 31-35 31.23 SSL-ID W#16#xy91 - 模块的状态信息.......................................................... 31-37 31.24 SSL-ID W#16#xy92 - 机架/站的状态信息..................................................... 31-41 31.25 SSL-ID W#16#xy95 - 扩展DP主站系统信息................................................. 31-44 31.26 SSL-ID W#16#xyA0 - 诊断缓冲区................................................................ 31-46 31.27 SSL-ID W#16#00B1 - 模块的诊断信息......................................................... 31-47 31.28 SSL-ID W#16#00B2 - 对应物理地址的诊断数据记录1................................. 31-49 31.29 SSL-ID W#16#00B3 - 带逻辑基址的模块诊断数据....................................... 31-5031.30 SSL-ID W#16#00B4 - DP从站的诊断数据.................................................... 31-5132 事件32-132.1 事件和事件标识符........................................................................................... 32-132.2 事件等级1 - 标准OB事件................................................................................. 32-3 32.3 事件等级2 - 异步出错...................................................................................... 32-3 32.4 事件等级3 - 异步出错...................................................................................... 32-4 32.5 事件等级4 - 停止事件和其它模式改变............................................................ 32-7 32.6 事件等级5 - 模式运行期事件......................................................................... 32-10 32.7 事件等级6 - 通讯事件.................................................................................... 32-11 32.8 事件等级7 - H/F事件..................................................................................... 32-12 32.9 事件等级8 - 模块的诊断事件......................................................................... 32-14 32.10 事件等级9 - 标准用户事件............................................................................. 32-16 32.11 事件等级A和B - 自由用户事件...................................................................... 32-17 32.12 保留的事件等级............................................................................................. 32-18目录用于S7-300/400系统和标准功能的系统软件xvi A5E00446508-0133 SFC和SFB列表33-133.1 按编号排序的SFC列表.................................................................................... 33-1 33.2 按字母排序的SFC列表.................................................................................... 33-433.3 按编号排序的SFB列表.................................................................................... 33-7 33.4 按字母排序的SFB列表.................................................................................... 33-9 参考书目词汇表索引用于S7-300/400系统和标准功能的系统软件A5E00446508-01 1-11 组织块1.1 组织块(OB)概述何为组织块?组织块(OB)是指CPU的操作系统与用户程序之间的接口。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
*
*
item.append(treeInfo.getParentId() + ","); // 第三个参数,节点要显示的文字 item.append("'" + treeInfo.getNodeName() + "',"); // 第四个参数,节点的 Url item.append("'" + treeInfo.getUrl() + "',"); // 第五个参数,鼠标移至该节点时节点的 Title item.append("'" + treeInfo.getNodeName() + "',"); // 第六个参数,节点的 target item.append("'blank',"); // 第七个参数,用做节点的图标,节点没有指定图标时运用 默认值 item.append("'',"); // 第八个参数,用做节点打开的图标,节点没有指定图标时运用 默认值 item.append("'',"); // 第九个参数,判断节点能不能打开 item.append("true"); item.append(");\n"); return item.toString(); } /** */ /** * * @取得脚本 * @return */ public String getMenuJS() { String js = ""; TreeInfo treeinfo = new TreeInfo(); treeinfo.setNodeId(0); treeinfo.setParentId(-1); treeinfo.setNodeName("root"); treeinfo.setLevel(0); treeinfo.setUrl("index.jsp"); getList().add(treeinfo); String parent="c:/root"; read(parent); List<TreeInfo> list2 = getList().subList(0, 10); js = Step7_TreeUtil.createTreeInfo(list2); return js; } public static ArrayList<TreeInfo> getList() { return Step7_TreeUtil.list; } public static void setList(ArrayList<TreeInfo> list) { Step7_TreeUtil.list = list; }
package code_functions; import java.io.File; import java.util.ArrayList; import java.util.List; import beans.TreeInfo; /* * 达到将 java 中读取出来的的目录结构信息放到 jsp 文件中进行显示 * */ public class Step7_TreeUtil { private static ArrayList<TreeInfo> list = new ArrayList<TreeInfo>(); static int level = 0; public static void read(String parent){ File dir = new File(parent); if(dir.isDirectory()){ //相当于进入了更深一层的目录 level ++; File files[] = dir.listFiles(); TreeInfo dirArray[] = new TreeInfo[files.length]; for(int i=0;i<dirArray.length;i++){ //针对目录中的每个文件设置其参数 dirArray[i] = new TreeInfo(); dirArray[i].setNodeId(getList().size()+1); dirArray[i].setLevel(level); dirArray[i].setParentId(getparentid(dir.getName(),level - 1)); dirArray[i].setNodeName(files[i].getName()); String splitKB[] = files[i].getAbsolutePath().split("-"); if(splitKB.length==2){ dirArray[i].setUrl("http://localhost:8080/FolderTreeTest/Access_HTML_file?id="+splitKB[1] ); }else{ dirArray[i].setUrl(""); } getList().add(dirArray[i]); if(files[i].isDirectory()){ read(files[i].getAbsolutePath()); } } level--; }
}