移植一个STEP7V5x项目到STEP7专业版(TIA博途)的必要条件是什么

移植一个STEP7V5x项目到STEP7专业版(TIA博途)的必要条件是什么
移植一个STEP7V5x项目到STEP7专业版(TIA博途)的必要条件是什么

SIMATIC STEP 7 Professional V13

SIMATIC WinCC Advanced V13 或SIMATIC WinCC Professional V13

移植一个STEP 7 V5.x 项目到STEP 7 专业版(TIA 博途) 的必要条件是什么?

* 文献

* 涉及产品

描述

本条目将说明STEP 7 V5.x 项目成功移植到STEP 7 专业版(TIA 博途) 的必要条件。

常规要求

为确保移植成功,须遵守以下几点:

* 除STEP 7 专业版(TIA 博途) 和STEP 7 V5.4/5.5 以外,移植项目用到的其它选项软件包也必须安装。

* 项目必须满足一致性要求。

* 移植项目中所使用的硬件必须在STEP 7 专业版(TIA 博途) 中支持,否则只能进行不含硬件配置的移植。

* 建议移植未加密的块。

* 不能移植的组件参见第8点。

详细要求

下面列表给出了移植一个STEP 7 V5.x 项目到STEP 7 专业版(TIA 博途) 的详细要求。

1. 软件要求

2. 项目一致性

3. 硬件组件

4. 移植早期版本的STEP 7 项目

5. 块保护

6. 故障安全

7. IEC 语言和软件工具

8. 不能移植的组件

9. 系统诊断和系统错误报告(SFM/RSE)

10. PLC 消息(Alarm_S, Alarm_D, Alarm_8, ...)

11. S7-SCL源中调用块

12. TIA 博途就绪检查工具( TIA Portal Readiness Check Tool )

13. 不支持的选项包配置

14. 使用STEP7 (TIA 博途) V12 或更高版本移植PLC 到S7-1500

15. Real 和String 变量移植

No.

移植的要求

1

软件要求

在希望执行项目移植的计算机上,以下软件必须安装

* STEP 7 专业版(TIA 博途) V11 或更高版本

* STEP 7 V5.4+SP5 或更高版本及相关许可证

* 被移植项目中使用的STEP 7 选项包也必须安装

项目一致性

一个完整的STEP 7 V5.x 项目必须是一致的,这意味着STEP 7 程序、硬件组态和网络组态必须是一致的。每种情况下执行检查一致性的相应功能,以便检查并保证一致性。

更多一致性检查的信息参考如下条目,ID: 5416540,也可参阅STEP 7 V5.x 的相关帮助。

在STEP 7 V5.x 的SIMATIC Manager 中可以在程序文件夹下只存储程序(没有CPU)。一致性程序移植之后在STEP 7 (TIA Portal)中会创建一个非指定的CPU。

注意

执行块一致性检查会导致工艺对象(例如PID 功能块) 的背景DB 中的变量恢复缺省值。带配方的数据块也会出现这种情况。建议采取下列的补救措施:

* 在进行块一致性检查前备份背景数据块,之后再将备份的数据块拷贝到原文件夹。

* 不使用块一致性检查恢复块的一致性。生成一个新的背景DB,然后复制所有数据从旧的(不一致的)背景DB 到新的(一致性的)背景DB。

然后DB 就可以带着配置的值移植到TIA 博途。

3

硬件组件

TIA 博途的硬件目录需包含STEP 7 V5.x 项目中使用的所有硬件组件,TIA 博途支持的模板为截止到2007 年10 月1 日还在销售且未退市的模板,这些模板存在于TIA 博途的硬件目录中。

所支持的模板概览在如下条目中提供ID 50029532。

图. 01

注意

从STEP 7 Professional V12开始选项"Exclude hardware configuration" 默认是禁用的,所以如果要移植硬件应该启用这个选项。如果项目中包含的硬件组件不能满足这些要求,移植将失败。但是,通过以下几点修改,可能实现项目移植或部分移植:

* 在STEP 7 V5.x 中,使用目前在销的模板替代不可移植的模板

* 或者在TIA 博途中安装缺失的GSD 文件

4

移植早期版本的STEP 7 项目

也可以移植早期版本的STEP 7 项目,比如,将在STEP 7 V5.3 中生成的项目移植到STEP 7 专业版(TIA 博途) 中,在这里,需要满足第1~3 点的要求。注意此项目必须在STEP 7 V5.4+SP5 (或更高版本) 中再次编译。

5

块保护

可以移植带保护块的项目到TIA 博途中,然后下载这些块到CPU 中。在这里,不支持STEP 7 V5.5 中使用了" S7 Block Privacy" 加密的块。在这个情况下,注意以下限制:

* TIA 博途不支持STEP 7 V5.x 所用的块保护机制(KNOW_HOW_PROTECT 及S7 Block Privacy 加密),TIA 博途使用一种改进的块加密机制。

* 不能打开或编辑这些块。

* 来自STEP 7 V5.x 的块保护不能在TIA 博途被移除。

建议

移植项目前,需要在STEP 7 V5.x 中移除块保护,移植之后使用TIA 博途的保护机制再次对块加密,在TIA 博途菜单:"Edit > Know-How Protection"。

6

安全

如需移植STEP 7 V5.x 中带F 程序的项目,则必须安装STEP 7 Safety Advanced V11 ,STEP 7 故障安全项目可完整的移植,S7 分布式安全程序结构和全部签名会在移植后保留。

* F 程序的校验和和全部签名不因移植而改变,移植过来的项目不需要再次许可也不用重新编译就可以下载到F CPU (1)。

* 然而,如果使用TIA 博途编辑或者重编译了移植的 F 程序,程序就会改变为STEP 7 Safety Advanced V11(2)格式。这样,会生成一个全新的签名和新的校验的F 程序,这意味着该F 程序必须重新许可。

图. 02

注意

STEP 7 Safety Advanced V12 还支持Safety Advanced V11 项目:可移植程序代码和硬件组态,以便可以方便地重新利用S7 Distributed Safety V5.4 SP5 项目。

7

IEC 语言和软件工具

使用IEC 语言LAD, FBD, STL, S7-GRAPH 或S7-SCL 编辑的程序可以移植到TIA 博途中。

可以移植带或不带相关源文件"STEP 7 V5.x - SCL source" 的S7-SCL 块。

* 在STEP 7 V5.x 项目中S7-SCL 源文件块可用(推荐)。

如果需要在TIA 博途中编辑S7-SCL块,在移植前V5.x 项目的源文件夹中必须包含S7-SCL 源文件,这些来自STEP 7 V5.x 的S7-SCL 源文件做为S7-SCL 块移植到TIA 博途中。实际的源文件并没有跟随转移,因为源文件对TIA 博途没有用。在TIA 博途中,一个SCL 块总是以无保护形式生成(即使在V5.x 源文件中包含"KNOW-HOW-PROTECT")。

* 在STEP 7 V5.x 项目无S7-SCL 源文件可用

在STEP 7 V5.x 丢失了相关源文件的S7-SCL 块被当作加保护的块移植到TIA 博途中。在第5点做为对保护块的限定同样适用于这些块的编辑。

S7-GRAPH 和S7-SCL 块移植到TIA 博途后一定要重编译,然后可下载项目到CPU 中。在块编译并下载后才有可能在线浏览。

注意

还需遵守条目ID: 59784005 中的说明。许多指令不能被转换,必须在移植后手动处理。

8

不能移植的组件

以下组件和软件工具在TIA 博途中不支持:

* 过程诊断S7-PDIAG

S7-PDIAG 块(FB44, DB44, ...)可移植但被标记为不支持。这些块可以下载但是不能编辑。消息文本和地址监控实例在STEP 7 (TIA 博途) 项目中也不再有效。

* H 系统

* 多项目(仅单个项目能移植)

TIA 博途不再支持以下组件和软件工具。

* S7-HiGraph

这些块可移植但标记为不支持。

* iMap

* FMS 连接

* 由STEP 7 V5.x 生成的库。为弥补这一点,推荐将这些块从库里拷贝到项目中,移植后再将这些块拷贝到TIA 博途库中。

9

系统诊断/系统错误报告(SFM/RSE)

SFM 块(FB49、DB49、FB50 和FC49)不能移植。移植后,要在CPU 属性中激活系统诊断。移植后必须在TIA 博途中编译硬件配置以生成包含新的报警和文本列表的新SFM 块,然后下载项目到CPU 。

10

PLC 消息(Alarm_S, Alarm_D, Alarm_8, ...)

PLC 消息可以移植,这些消息带有所有参数,包含重新生成的所有信息消息等级。消息类型和消息实例同样移植并保存在TIA 博途的PLC 消息中。要求是在STEP 7 V5.x 中独立站点消息编号的分配预设为"CPU-oriented unique"。可以在STEP 7 V5.x 项目中使能这个设置,过程如下:

1. 在STEP 7 V5.x 项目的SIMATIC Manager 中标记站点(例如"SIMATIC 300")。

2. 在菜单条中选择"选项>用户自定义..."("Options > Customize..." )对话框。

3. 选择"消息编号"("Message numbers")标签,使能设定"总是分配CPU 导向的唯一消息编号"("Always assign CPU-oriented unique message numbers")。

4. 然后使用"文件>保存为..."("File > Save as..." )功能和"重新组织(慢)"("With reorganization (slow)" )选项保存项目。

消息只能通过图.03中显示的设置移植。

图. 03

11

S7-SCL源中块调用

在STEP 7 V5.x 中,S7-SCL 源中调用的块参数在在实际调用之前或之后设置。这意味着可以在没有完整的参数和情况下调用块,块的I/O 参数可以在S7-SCL 源程序中的其它地方分配。这种编程方式在TIA 博途上无法实现,将来也不会支持。可以在TIA 博途中无错误的移植和编译STEP 7 V5.x 的项目,但此块的调用在S7-SCL 程序中将不再有效。在编译STEP 7 V5.x 中的S7-SCL 源和将项目移植到TIA 博途之前,注意一下几点:

* 所有被调用块的参数必须在调用声明中分配

* 被调用块的任何参数都不能在S7-SCL 源的另外一点被删除,插入和参数化。

12

TIA 博途准备就绪检查工具(TIA Portal Readiness Check Tool)

TIA 博途准备就绪检查工具给出了一个简单方法,用于检查TIA 博途是否支持项目中的硬件,这个工具可应用于:

* STEP7 V5.4

* STEP7 V5.5

* WinCC V7

* WinCC flexible 2008

更多信息查询条目ID: 60162195 。

13

不支持的选项包处理

如被移植项目中包含有与当前STEP 7 版本不兼容或当前电脑未安装的选项包,则该项目无法移植到TIA 博途中。STEP 7 V5.x 中打开该项目时,也会提示缺失的选项包。

如这些配置是不可或缺的,则必须安装缺失的选项包。需注意安装STEP 7 当前版本的硬件要求。例如,安装在Windows 7 (32-bit) 的STEP 7 V5.5+SP2 需V4.2.1 (或更高版本) 的SIMOTION SCOUT 。关于兼容性的更多信息参见条目ID: 18734363。在缺失选项包安装后,必须重新编译项目。

如缺失选项包的配置是不需要的,则必须在STEP 7 V5.x 中重新组织项目。为此,在SIMATIC Manager 中打开对话框"文件>保存为..."("File > Save as..." ),激活选项"重新组织(慢)"("With reorganization (slow)" )。更改项目名称并确认(OK) 。保存和重新组织项目后,可移植此新建项目到TIA 博途。

图. 04

注意

勾选此选项后,项目在保存过程中会被检查和重新组织。在某种情况下,此方法会减少项目的内存空间需求。项目的所有缺失选项包组件会被去除。更多信息请参阅STEP 7 V5.5 的在线帮助"另存项目"。

14

使用STEP 7 (TIA 博途) V12或更高版本移植PLC 至S7-1500

关于移植到S7-1500 通过STEP7 (TIA 博途) V12 相关程序和信息,请参见:

* 条目号ID: 67858106 (移植到S7-1500)

* 条目号ID: 67582299 (移植到S7-1500 的推荐条目)

15

Real 与String 变量移植

在STEP 7 V5.x中对于real和string变量的数据块的初始值要设置在允许的或声明的范围内。* 输入real变量的初始值,使其在范围+1.175494E-38 到+3.402823E+38内。

* string变量的最大长度不能超过声明的string数据类型的长度。

示例

在STEP 7 V5.5中的数据块中输入下面的初始值:

* 一个real 值2.498155e-41

* 一个超过4个字节的string值,尽管声明的变量类型为"String[4]"。

从STEP 7 V5.x 项目到STEP 7 (TIA Portal) 的移植是成功地,但是通过点击菜单按钮"软件(重建所有块)"完成编译后,在巡视窗口中会得到如下的错误信息:

* 变量值超过了允许的范围+1.175494E-38 到+3.402823E+38

* F0:当前变量类型为string的变量...其长度超过了声明的长度4

补救措施

在STEP 7 (TIA Portal) 中打开对应的数据块并修改它们的初始值。之后通过点击菜单按钮"软件(重建所有块)"重新编译。

更多详细信息请参阅TIA 博途的在线帮助"移植项目"。

创建环境

该FAQ 的截图由STEP 7 (TIA 博途) V13创建。

STEP7-功能块全中文说明

https://www.360docs.net/doc/415044880.html,parator == IN1等于IN2 <> IN1不等于IN2 > IN1大于IN2 < IN1小于IN2 >= IN1大于或等于IN2 <= IN1小于或等于IN2 2.整数就是没有小数位都是零的数,即能被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 整数加

西门子STEP7编程中sfb4的用法

西门子STEP7编程—IEC定时器的使用 2010年03月03日星期三 08:59 西门子STEP7提供了10种定时器指令,用户可以根据不同的情况,很方便的选择一种适合自己的要求。可是STEP7的定时器的时间值用了一种西门子独有的S5TIME的数据类型来表示。某些时候使得定时器用起来不那么顺手,例如,在上位机监控软件画面上显示计时器的当前值或者需要在运行时在监控画面上修改预设值。对此STEP7提供了FC33(S5TI_TIM)和FC40(TIM_S5TI)来实现S5TIME数据类型与TIME数据类型之间的相互转换,但是换来换去的还是很麻烦。笔者认为在这种情况下不如直接使用STEP7的IEC 定时器。 STEP7的IEC定时器是个什么东西呢?其实就是STEP7提供的一系列系统功能块,能实现定时器同样的功能,和STEP7定时器指令不同的是它们是符合IEC1131-3标准的定时器。具体地说就是SFB3(TP)脉冲定时器、SFB4(TON)接通延迟定时器和SFB5(TOF)关闭延迟定时器。 功能块参数说明 STEP7的TIME数据类型在上位机上读写就很方便了,根据它的定义,实际上它就是一个有符号双整数,每一步长表示为1毫秒。 定时器的类型就三种。1、接通延时定时器TON 2、记忆接通延时定时器TONR 3、断开延时定时器 TOF 计时器总共有256个,其中1ms定时器4个(T0,T32,T64,T96),其中10ms 定时器16个(T1~T4,T33~T36,T65~T68,T97~T100),其余的都是100ms定时

器。 1ms定时器的刷新周期为1ms,与扫描周期和程序处理无关;10ms定时器在每个扫描周期开始时进行刷新;100ms定时器在定时器指令被执行时刷新。

Step7-数据类型详细说明总结汇总

STEP7中的基本数据类型 ⑴位(BOOL) 位数据的数据类型为BOOL(布尔)型,在软件编程中BOOL变量的值1和0常用英语词TURE(真)和FALSE(假)来表示,对应二进制数中的“1”和“0”,常用于开关量的逻辑运算,存储空间为1位。 ⑵字节(BYTE) 字节数据长度为8位,数据格式为B#16#,B代表BYTE,表示数据长度为一个字节(8位),#16#表示十六进制,取值范围为B#16#0~B#16#FF。 ⑶字(WORD) 字数据长度为16位,这种数据可采用4种方法进行描述。 二进制:二进制的格式为2#,如2#101,取值范围为2#0~2#1111_1111_1111_1111,书写时每4位可用下划线隔开,也可直接表示为2#111111111111。 十六进制:十六进制的格式为W#16#,W代表WORD,表示数据长度为16位,#16#表示十六进制,数据取值范围为W#16#0~W#16#FFFF。 BCD码:BCD码的格式为C#,取值范围为C#0~C#999。BCD码是用4位二进制表示1位十进制数,4位二进制中的0000~1001组合分别表示十进制中的0~9,4位二进制中的1010~1111组合放弃不用。BCD码的最高4位用来表示符号,十六位BCD码的取值范围为-999~+999。在STEP7的数据格式中,BCD码的取值只取正值,与最高4位的符号无关。 无符号十进制数:无符号十进制数的格式为B#(×,×),取值范围为B#(0,0)~B#(255,255),无符号十进制数是用十进制的0~255对应二进制数中的0000_0000~ 1111_1111(8位),16位二进制数就需要两个0~255的数来表示,例如: B#(12,254)=2#0000_1100_1111_1110 12 254 上面4种数据都是描述一个长度位16位的二进制数,无论你使用哪种方式都可以。例如,如果想得到二进制数0000100110000111,可以使用2#0000_1001_1000_0111,也可以使用W#16#987,还可以使用C#987或者B#(9,135)。在STEP7中,比较常用的是十六进制,即W#16#这种格式。 ⑷双字(DOUBLE WORD) 数据长度为32位,双字的数据格式与字的数据格式相同,也有4种方式,分别为: 二进制:取值范围为2#0~2#1111_1111_1111_1111_1111_1111_1111_1111。 十六进制:取值范围为DW#16#0~DW#16#FFFF_FFFF。 BCD码:取值范围为C#0~C#9999999。 无符号十进制数:取值范围为B#(0,0,0,0)~B#(255,255,255,255)。 ⑸整数(INT) 整数数据类型长度为16位,数据格式为带符号十进制数,16位中最高为符号位。正整数是以原码格式进行存储的,如+786,对应的二进制码为2#0000_0011_0001_0010,而负整数则表示为正整数的二进制补码,即对应正整数的二进制码取反后加1,例如负整数-786,对应的二进制码为2#1111_1100_1110_1110。将负零(1000_0000_0000_0000)定义为-32768因此取值范围为-32768~32767。0表示正,1表示负。 ⑹双整数(DOUBLE INT) 双整数的数据类型长度为32位,数据格式为带符号十进制数,用L#表示双整数。双整数的二进制码与整数的换算方式一致,其取值范围为L#-2147483648~L#2147483647。 ⑺实数(REAL也叫浮点数Float) 实数的数据类型长度为32位,是以IEEE浮点数格式转换为二进制数存储的,其取值范围为±3.402823e+38~±1.1755494e-38。 实数用1.m×2E例如123.4可表示为1.234×102。 式中:指数E=e-127(1≤e≤254)为8位整数 符号位(S):S=0为正值S=1为负值 规定尾数的整数部分总是为1,只保留尾数的小数部分m(0~22位)

STEP7中的基本数据类型-重要

STEP7中的基本数据类型 ⑴位(BOOL ) 位数据的数据类型为BOOL (布尔)型,在软件编程中BOOL变量的值1和0常用英语词TURE (真)和FALSE (假)来表示,对应二进制数中的“ 1和“0,常用于开关量的逻辑运算,存储空间为1位。 ⑵字节(BYTE) 字节数据长度为8位,数据格式为B#16#,B代表BYTE,表示数据长度为一个字节(8位),# 16#表示十六进制,取值范围为B#16#0?B#16#FF。 ⑶字(WORD ) 字数据长度为16位,这种数据可采用4种方法进行描述。 二进制:二进制的格式为 2 #,如2 # 101,取值范围为2# 0?2# 1111_1111_1111_1111, 书写时每4位可用下划线隔开,也可直接表示为2# 111111111111 十六进制:十六进制的格式为W # 16#, W代表WORD,表示数据长度为16位,# 16#表示十六进制,数据取值范围为W # 16# 0?W # 16 # FFFF。 BCD码:BCD码的格式为C#,取值范围为C# 0?C# 999。BCD码是用4位二进制表示1位十进制数,4位二进制中的0000?1001组合分别表示十进制中的0?9, 4位二进制中的1010?1111组合放弃不用。BCD码的最高4位用来表示符号,十六位BCD码的取值范围为—999? +999。在STEP7的数据格式中,BCD码的取值只取正值,与最高4位的符号无关。 无符号十进制数:无符号十进制数的格式为 B #( X, X),取值范围为B #( 0, 0)? B #( 255, 255),无符号十进制数是用十进制的0?255对应二进制数中的0000_0000? 1111_1111 ( 8位),16位二进制数就需要两个0?255的数来表示,例如: B# (12, 254)= 2# 0000_1100_1111_1110 _12 ― 254 上面4种数据都是描述一个长度位16位的二进制数,无论你使用哪种方式都可以。例 如,如果想得到二进制数0000100110000111,可以使用2# 0000_1001_1000_0111 ,也可以 使用W # 16# 987,还可以使用C# 987或者B #( 9, 135)。在STEP7中,比较常用的是十六进制,即W # 16#这种格式。 ⑷双字(DOUBLE WORD ) 数据长度为32位,双字的数据格式与字的数据格式相同,也有4种方式,分别为: 二进制:取值范围为 2 # 0?2# 1111_1111_1111_1111_1111_1111_1111_1111 十六进制:取值范围为DW # 16# 0?DW # 16 # FFFF_FFFF。 BCD码:取值范围为C# 0?C# 9999999。 无符号十进制数:取值范围为 B #( 0,0,0,0)?B #( 255,255,255,255 )。 ⑸整数(INT ) 整数数据类型长度为16位,数据格式为带符号十进制数,16位中最高为符号位。正整 数是以原码格式进行存储的,如+ 786,对应的二进制码为2# 0000_0011_0001_0010 ,而负 整数则表示为正整数的二进制补码,即对应正整数的二进制码取反后加1,例如负整数-786, 对应的二进制码为2# 1111_1100_1110_1110。将负零(1000_0000_0000_0000 )定义为-32768 因此取值范围为-32768?32767。0表示正,1表示负。 ⑹双整数(DOUBLE INT ) 双整数的数据类型长度为32位,数据格式为带符号十进制数,用L #表示双整数。双 整数的二进制码与整数的换算方式一致,其取值范围为L#-2147483648?L # 2147483647。 ⑺实数(REAL也叫浮点数Float)

实验二西门子PLC编程软件STEP的使用入门

实验二西门子P L C编程软件S T E P7的使用入门 一、实验目的 1.初步掌握编程软件STEP7 的使用方法。 2.了解PLC中程序块的概念。 二、实验设备(仪器) 1.计算机一台。 2.西门子S7-300PLC(CPU:315-2DP)一台。 三、实验内容 1.编程软件STEP7 的硬件组态。 (1)新建一个项目。首先用鼠标左键双击桌面上的STEP7图标,进入SIMATIC Manager(管理器)窗口,单击“File”菜单下的“New”,如图2-1所示,弹出一个对话框,在项目名称“Name”中输入sample,也可以在项目的存储路径“Storage location”中输入你要存储的地址,本实验中使用默认地址就可以,如图2-2所示,单击“Ok”完成,如图2-3所示。 图2-1 项目管理器界面 图2-2 创建一个新的项目 图2-3 创建一个项目后的管理器界面 (2)插入一个S7-300的站,进行硬件组态。在“Insert”菜单下的“”Station的目录下单击“2 SIMATIC 300 Station”,如图2-4所示。 图2-4 在项目中插入对象 (3)打开硬件组态界面。选中左边窗口中的“SIMATIC 300(1)”,在右边窗口中可以看到“Hardware”图标,如图2-5所示。 图2-5 启动硬件组态程序 双击右边窗口中的“Hardware”图标,进入硬件组态程序界面,如图2-6所示。 (4)主机架的配置方法。在STEP7中,通过简单的拖放操作就可以完成主机架的配置。 ①在硬件目录中找到S7-300机架拖拽到左上方的视图中,即可添加一个主机架。

图2-6 硬件组态程序界面 ②插入主机架后,分别在机架中的1号槽中添加电源,如图2-7所示,2号槽中添加CPU,如图2-8所示。 图2-7 向主机架中添加电源 图2-8 向主机架中添加CPU ③如果需要扩展机架,则应该在IM-300目录中找到相应的接口模块,添加到3号槽。如无扩展机架,3号槽留空。 ④4到11号槽中添加信号模块,功能模块,通讯处理器等,上述模块分别在硬件目 录中的SM-300,FM-300和CP-300目录下。例如,在主机架中添加了一个数字量输入模块 和一个数字量输出模块,如图2-9和图2-10所示。 图2-9向主机架中添加一个数字量输入模块 图2-10 向主机架中添加一个数字量输出模块 (5)单击图标进行编译和保存,单击图标把硬件组态程序下载到PLC中。 2.编程软件STEP7 的CPU模块和I/O模块的参数设置。 (1)CPU的参数配置。双击机架中的“CPU”,打开CPU的属性对话框,在此可以根据要求配置CPU的各种参数,如图2-11所示。 图2-11 CPU的参数配置 MPI地址的设置。在CPU的属性对话框中单击“Properties”按钮,更改CPU的MPI 地址为3和通讯速率为,如图2-12所示。设置完成后,点击“OK”,回到CPU的参数配置框,如图2-13所示,可以看见MPI的“Address”中的2变为3,“Networded”中的No变为Yes,点击“OK”完成。 图2-12 MPI接口地址和数据传输速率的设置对话框 图2-13 设置完成后的CPU的参数配置 DP参数的设置。双击机架中的DP所在的行,在弹出的DP属性窗口中的“General”(常规)选项卡中点击“Interface”中的“Properties”按钮,如图2-14所示,可以设置站地址或DP子网络的属性,生成或选择其他子网络,图2-15所示。设置完成后,点击“OK”回到硬件组态程序界面,如图2-16所示,可以看到多了一条Profibus-DP总线。

STEP 7 Struct是什么数据类型

STEP 7 Struct是什么数据类型 请问STEP7Struct是什么数据类型 在什么样的情况下需要用到Struct数据类型!! 最佳答案 Struct(结构性类型)是由不同数据类型组成的、属于复合型数据类型,它是用来定义一组相关的数据,其长度由用户定义,它与数组(Array)类型相反(ARRAY是由相同类型的数据组成的数组)。 许多关于结构类型的书籍中提到的关于电机控制系统中,把一个电机所有控制元素,如运行速度、额度电流、起动电流和运行方向等作为参数或逻辑块的局部变量,并且在全局数据块中声明,这样利用它可以结构化大量的数据并且可以用符号进行处理,由于访问结构的元素包含结构的名称,使程序更容易读,指令编写更清晰。 如电机的一组不同类型的数据(称为元素)组成的结构命名为Motor_Data,并且放在共享数据块DB1中,为了用符号访问结构中的一个元素,需要给数据块分配一个符号名,如Drive_1.结构的关键字是“STRUCT“,结构的结束用END_STRUCT.这样在打开数据块DB1(符号名Drive_1),可以看到上面变量声明表为:

Address(地址)Name(名称)Type(类型)InitialValue (初始值) 0.0Struct 0.0Motor_Data(电机数据)Struct 0.0Operating_speed(运行速度)INT 2.0Rated_current(额定电流)REAL 6.0Start_current(起动电流)REAL 10.0Max_temperature(最大温度)REAL 14.0Turning_direction(转动方向)BOOL =16.0END_STRUCT =16.0END_STRUCT 如果访问上述结构中的某个元素,如Rated_current(额度电流),可以直接用下列指令: L“Drive_1”.Motor_data.Rated_current 其中,“Drive_1”是数据块的符号名,该数据块包含结构、结构名称(用点分割)在数据块的后面。结构的元素名(用点分割)跟在结构名的后面。

Step7-数据类型详细说明总结汇总复习过程

S t e p7-数据类型详细说明总结汇总

STEP7中的基本数据类型 ⑴位(BOOL) 位数据的数据类型为BOOL(布尔)型,在软件编程中BOOL变量的值1和0常用英语词TURE (真)和FALSE(假)来表示,对应二进制数中的“1”和“0”,常用于开关量的逻辑运算,存储空间为1位。 ⑵字节(BYTE) 字节数据长度为8位,数据格式为B#16#,B代表BYTE,表示数据长度为一个字节(8位),#16#表示十六进制,取值范围为B#16#0~B#16#FF。 ⑶字(WORD) 字数据长度为16位,这种数据可采用4种方法进行描述。 二进制:二进制的格式为2#,如2#101,取值范围为2#0~2#1111_1111_1111_1111,书写时每4位可用下划线隔开,也可直接表示为2#111111111111。 十六进制:十六进制的格式为W#16#,W代表WORD,表示数据长度为16位,#16#表示十六进制,数据取值范围为W#16#0~W#16#FFFF。 BCD码:BCD码的格式为C#,取值范围为C#0~C#999。BCD码是用4位二进制表示1位十进制数,4位二进制中的0000~1001组合分别表示十进制中的0~9,4位二进制中的1010~1111组合放弃不用。BCD码的最高4位用来表示符号,十六位BCD码的取值范围为-999~+999。在STEP7的数据格式中,BCD码的取值只取正值,与最高4位的符号无关。 无符号十进制数:无符号十进制数的格式为B#(×,×),取值范围为B#(0,0)~B#(255,255),无符号十进制数是用十进制的0~255对应二进制数中的0000_0000~ 1111_1111(8位),16位二进制数就需要两个0~255的数来表示,例如: B#(12,254)=2#0000_1100_1111_1110 12 254 上面4种数据都是描述一个长度位16位的二进制数,无论你使用哪种方式都可以。例如,如果想得到二进制数0000100110000111,可以使用2#0000_1001_1000_0111,也可以使用W#16#987,还可以使用C#987或者B#(9,135)。在STEP7中,比较常用的是十六进制,即W#16#这种格式。 ⑷双字(DOUBLE WORD) 数据长度为32位,双字的数据格式与字的数据格式相同,也有4种方式,分别为: 二进制:取值范围为2#0~2#1111_1111_1111_1111_1111_1111_1111_1111。 十六进制:取值范围为DW#16#0~DW#16#FFFF_FFFF。 BCD码:取值范围为C#0~C#9999999。 无符号十进制数:取值范围为B#(0,0,0,0)~B#(255,255,255,255)。 ⑸整数(INT) 整数数据类型长度为16位,数据格式为带符号十进制数,16位中最高为符号位。正整数是以原码格式进行存储的,如+786,对应的二进制码为2#0000_0011_0001_0010,而负整数则表示为正整数的二进制补码,即对应正整数的二进制码取反后加1,例如负整数-786,对应的二进制码为2# 1111_1100_1110_1110。将负零(1000_0000_0000_0000)定义为-32768因此取值范围为-32768~32767。0表示正,1表示负。 ⑹双整数(DOUBLE INT) 双整数的数据类型长度为32位,数据格式为带符号十进制数,用L#表示双整数。双整数的二进制码与整数的换算方式一致,其取值范围为L#-2147483648~L#2147483647。 ⑺实数(REAL也叫浮点数Float) 实数的数据类型长度为32位,是以IEEE浮点数格式转换为二进制数存储的,其取值范围为 ±3.402823e+38~±1.1755494e-38。 实数用1.m×2E例如123.4可表示为1.234×102。 式中:指数E=e-127(1≤e≤254)为8位整数 符号位(S):S=0为正值S=1为负值 规定尾数的整数部分总是为1,只保留尾数的小数部分m(0~22位)

Step7-数据类型详细说明总结汇总

Step7-数据类型详细说明总结汇总

STEP7中的基本数据类型 ⑴位(BOOL) 位数据的数据类型为BOOL(布尔)型,在软件编程中BOOL 变量的值1和0常用英语词TURE(真)和FALSE(假)来表示,对应二进制数中的“1”和“0”,常用于开关量的逻辑运算,存储空间为1位。 ⑵字节(BYTE) 字节数据长度为8位,数据格式为B#16#,B代表BYTE,表示数据长度为一个字节(8位),#16#表示十六进制,取值范围为B#16#0~B#16#FF。 ⑶字(WORD) 字数据长度为16位,这种数据可采用4种方法进行描述。 二进制:二进制的格式为2#,如2#101,取值范围为2#0~2#1111_1111_1111_1111,书写时每4位可用下划线隔开,也可直接表示为2#111111111111。 十六进制:十六进制的格式为W#16#,W代表WORD,表示数据长度为16位,#16#表示十六进制,数据取值范围为W #16#0~W#16#FFFF。 BCD码:BCD码的格式为C#,取值范围为C#0~C#999。BCD码是用4位二进制表示1位十进制数,4位二进制中的0000~1001组合分别表示十进制中的0~9,4位二进制中的1010~1111组合放弃不用。BCD码的最高4位用来表示符号,十六位BCD码的取值范围为-999~+999。在STEP7的数据格式中,BCD码的取值只取正值,与最高4位的符号无关。

无符号十进制数:无符号十进制数的格式为B#(×,×),取值范围为B#(0,0)~B#(255,255),无符号十进制数是用十进制的0~255对应二进制数中的0000_0000~ 1111_1111(8位),16位二进制数就需要两个0~255的数来表示,例如: B#(12,254)=2#0000_1100_1111_1110 12 254 上面4种数据都是描述一个长度位16位的二进制数,无论你使用哪种方式都可以。例如,如果想得到二进制数0000100110000111,可以使用2#0000_1001_1000_0111,也可以使用W#16#987,还可以使用C#987或者B#(9,135)。在STEP7中,比较常用的是十六进制,即W#16#这种格式。 ⑷双字(DOUBLE WORD) 数据长度为32位,双字的数据格式与字的数据格式相同,也有4种方式,分别为: 二进制:取值范围为2#0~2#1111_1111_1111_1111_1111_1111_1111_1111。 十六进制:取值范围为DW#16#0~DW#16#FFFF_FFFF。 BCD码:取值范围为C#0~C#9999999。 无符号十进制数:取值范围为B#(0,0,0,0)~B#(255,255,255,255)。 ⑸整数(INT) 整数数据类型长度为16位,数据格式为带符号十进制数,16位中最高为符号位。正整数是以原码格式进行存储的,如+

step7 变量导入

复制--粘贴是最简单的办法了,你只要在EXCEL表格中按照符号表的格式即“符号”--“地址”--“类型”--“注释”四列填写好,然后把这四列内容复制后就可以粘贴到符号表中去了。 要注意的是:符号的长度是有限制的,不能超过24个字符。 如何将自己Excel格式的I/O表内容导入到Step 7符号表中? 大型项目中一般都有自己的IO表,包括IO地址,符号名以及数据类型等,怎么能够将将这么多的符号快速的输入到Step 7的变量表中呢? 可以使用Excel。 通常处理符号表的方法: a,可以在硬件组态中选择模块,右键选择Edit Symbol输入; b,可以在编写程序时,点击某个输入输出,右键选择Edit Symbol c,可以通过Excel输入。 下面简单介绍通过Excel输入 1,打开中的符号表,并通过“Symbol Table > Export...”将它导出,文件类型选择DIF;选择其它的格式虽然可以在excel中打开编辑,但是格式没有DIF格式这么好处理; 2 使用Excel 编辑该DIF 文件,可以从自己的IO对应表中通过复制粘贴的方式完成符号表的制作;格式一目了然; 3 现在,通过“Symbol Table > Import...”导入已符号表。 1 打开SIMATIC Manager 中的符号表,并通过 “Table> Export...”将它导出。 2 然后,“Export”对话框打开。选择用于保存符号表的文件夹。为了进一步在Excel 中编辑符号表,必须选择 “Data Interchange Format (DIF)”作为文件类型。 在Microsoft Excel 中,可以打开、编辑和再次保存DIF 文件。 点击OK 确认后,将符号表导出。 3 现在可以使用Excel 打开保存在当前文件夹中的DIF 文件(即导出的符号表)。双击文件即可打开(例如图03 中的“_symlist”文件)。 4 在打开的Excel 表格中,可以将符号连同相应的地址、数据类型和注释一起输入。

step7常用功能块的使用说明

目的:FC105的使用 1、FC105是处理模拟量(1~5V、4~20MA等常规信号)输入的功能块,在中,打开Libraries\standard library\ Ti-S7 Converting Blocks\fc105,将其调入OB1中,给各个管脚输入地址;如下: 其中,管脚的定义如下: IN---------模拟量模块的输入通道地址,在硬件组态时分配; HI_LIM---现场信号的最大量程值; LO_LIM--现场信号的最小量程值; BIPOLAR—极性设置,如果现场信号为+10V~-10V(有极性信号),则设置为1, 如果现场信号为4MA~20MA(无极性信号);则设置为0;

OUT-------现场信号值(带工程量单位);信号类型是实数,所以要用MD200来存放; RET_V AL-FC105功能块的故障字,可存放在一个字里面。如:MW50; 2、热电偶、热电阻信号的处理,该类信号实际值是通道整数值的1/10; 3、FB41 PID控制模块的使用; PID模块是进行模拟量控制的模块,可以完成恒压、恒温等控制功能在中,打开Libraries\standard library\ PID Control block\FB41,将其调入OB1中,首先分配背景数据块DB41,再给各个管脚输入地址;如下: 4、脉冲输出模块FB43,该模块是将模拟量转换成比率的脉冲输出。Libraries\standard library\ PID Control block\FB43,将其调入OB1中,首先分配背景数据块DB43,再给各个管脚输入地址;如下:

5、果现场是阀门等执行机构,只需要将通道地址输入PID的输出通道,如下:

在SIMOTION中读取、写入驱动器参数 及数据类型的转换

一、驱动器参数的读取及写入 1.应用概述 SIMOTION中读取及写入驱动器参数的函数为:_readDriveParameter,_readDriveMultiParameter, _writeDriveParameter ,_writeDriveMultiParameter。SIMOTION最多可以同时处理16个参数读写任务,每个DP站只能允许一个任务。 SIMOTION通过_readDriveParameter,_readDriveMultiParameter函数可方便读取驱动器中的单个或多个参数值;通过_writeDriveParameter ,_writeDriveMultiParameter函数可修改驱动器中的单个或多个参数值。 2.通讯报文的配置 在硬件配置中配置好驱动器的通讯报文 3.建立程序 在D435中的“PROGRAM”中插入编程单元“LAD/FBD UNIT”,如”RWPar”,在“UNIT”中插入程序如“readparameter”和“writeparameter”编写读取和写入驱动器参数的程序如图1所示,也可以将读取和写入驱动器参数的程序编写在同一个程序中。

图1:SIMOTION 程序的创建 本例中在“readparameter”程序中编写读取驱动器参数的程序,在“writeparameter”程序中编写写入驱动器参数的程序,相应的函数在函数库中的位置如图2所示: 图2:函数块的位置 3.函数介绍 3.1 _readDriveParameter:读取驱动器中的一个参数值 在“readparameter”程序中调用_readDriveParameter函数来读取驱动器中的一个参数值(如P314),与STEP7编写方式相似,将函数拖曳到LAD网络中,枚举类型变量的赋值可以使用MOVE指令,如图3所示:

STEP7中批量把模拟量输入转换为浮点数

STEP7批量把模拟量输入转换为浮点数 使用STEP7编程的工程师都知道,把模拟量输入转换为浮点数需要用FC105块。FC105需要填写模拟量输入地址、高量程、低量程以及输出浮点数的地址等数据,如果项目只有几个模拟量输入,这样做没有问题,如果项目有几十个甚至超过100个模拟量输入,这样做就是非常痛苦的一件事。本篇文章就可以解决大量模拟量输入的问题,这个方法在多个项目可以共享,每次项目只需要做小量修改,可以节约大量的时间,并且不容易出错,几乎无需调试。 本篇文章面向的是有初步STEP7编程基础的工程师,如果以前没有用过STEP7软件,可能看起来比较吃劲,下面详细讲解操作步骤,子程序会提供全部的源码,已经经过验证,复制过去就可以用,有兴趣的人也可以分析一下子程序。 操作步骤共有4个步骤:步骤1设定模拟量输入地址及要求,步骤2创建3个数据块;步骤3创建转换子程序,步骤4把子程序放在OB1中运行。 步骤1:在做项目时最好保证模拟量输入地址是连续,如果模拟量输入地址不连续,有两个方法解决,方法1,如果新设计的项目,最好修改硬件组态,使模拟量输入地址是连续的;方法2,如果项目不允许修改模拟量输入地址,可以多次调用子程序,有几个连续的地址就调用几次。模拟量输入地址的起始与模拟量的数量在步骤4中使用。 步骤2:创建三个数据块DB3621、DB3622、DB3627(这3个数

据块编号在具体的项目中可以修改),DB3621存放模拟量浮点数输出,这个数据块存放的数据就是转换完的模拟量数据,DB3622存放模拟量的高量程、DB3627存放模拟量的低量程,根据项目不同,数据块采用不同的数据块格式可以简化操作,以下介绍什么情况采用哪种数据块数据格式。 数据块数据格式1 ,这个数据格式采用数组结构,这种数据块创建与修改数据块大小十分容易,但是在STEP 7中不容易手动修改单个的值,这种格式适合存放模拟量浮点数输出,如果模拟量的低量程基本上全部是0,只有个别数据不为0,也用这个格式。如果模拟量的高量程不需要在STEP7设置与修改,而是全部在WINCC中设置,那么模拟量的高量程的数据块也可以采用这种数据结构。 数据块数据格式2,这个数据格式是最常见格式,每条数据需要单独添加,它的优点,每数据内容直观、易修改,可以看到每条数据的注释。数据修改可以在数据块内进行,建立这种数据块,不推荐用手工添加,最好用EXEC表格导入, EXEC表格导入方法有相关的文档介绍。 创建数据块数据格式1方法: ①新建一个数据块,修改数据块名称及编号 ②打开数据块,如下图,在第2行的名称栏输入SPAN(也可以是别的名字,但不能出现非法字符与汉字),在类型栏输入ARRAY[0..100],100是指数据个数,如果需要转换的模拟量为150个,则把100改为150即可。如果是建立低量程数据块,零点全部是0,

数据类型转换

C语言数据类型转换 数据之间的混合运算 前言:变量的数据类型是可以转换的。转换的方法有两种,一种是自动转换,一种是强制转换。 C语言的混合运算,情况较多,死记硬背必然达不到预期的效果。如果理解了如下几个问题,那C语言的混合运算问题将必然迎刃而解。 一、存储形式 在C中,整型和字符型(以ASCII码表示)都是以二进制补码存放的,正数的补码为其本身,负数的补码为其绝对值按位取反+1;如1,以00000001存放,-1,(绝对值为1,1的反码为11111110,反码+1,为11111111),故-1存放形式为11111111. 二、范围 范围取决于存储数据的字节数,int(4),char(1),等;根据自己的编译环境用sizeof()函数试一下,加深印象。 三、混合运算原则 (1)遵循精确度由低到高的原则。如char、short-->int-->unsigned-->long int-->double<--float (2)赋值运算时,按存储单元中存储形式直接传送。如float-->int,则舍弃小数部分;float-->double,高位补0或者1; 具体编程实践时: 在程序运行中,变量的数据类型是可以转换的,转换方式有两种。 一、自动转换:自动转换发生在不同数据类型的量运算时,由编译系统自动完成。 1.自动转换遵循的规则 (1)若参与运算的量的数据类型不同,则先转换成同一类型,然后进行运算。 (2)转换数据始终往长度增加的方向进行,以确保精确度,如int和long运算,则将int转换为long再运算。 (3)所有的浮点运算都是以双精度(double)进行的,即使仅含有float变量的运算式,也要先转换为double再运算。 (4)char型和short进行运算时,要先转换为int型。 (5)在赋值运算中,赋值号两边的数据类型不同时,将赋值号右边的数据类型转换成左边的类型,结果是如果右边量的数据长度长于左边长度,会使一部分数据丢失,会降低精度,丢失的部分四舍五入。

STEP7软件调试技巧

STEP7软件调试技巧【工控老鬼】 STEP7的PLC程序符合IEC-61131标准,该标准支持5种编程语言STL/FBD/LAD,另外SFC/SCL是选件.但大部分调试手段却是通用的. (1) Variable Table 根据我的调查显示,Variable Table (变量监视表)是最常用的,功能也很强,能监视又能强制修改,编辑好后可以长期保存,看看STEP7自带的的例子就知道了,都提供了变量表.因为太常用,我就不多说了,嘿嘿... 作用: 变量监视/强制修改调用方法: 主菜单> Insert > s7 Block > Variable Table (2) CPU Message/Diagnostic Buffer 这两者的作用差不多,都是从PLC中的Diagnostic Buffer(诊断缓冲区)中提取诊断信息.区别在于前者象一个日志而后者直接显示了PLC诊断缓冲区中的内容. 如果你的程序已经下载到了PLC中,但一开机就SF(system failure)红色LED灯就亮了,或是程序一开始运行良好,也不知道什么时候就down 机了(噢,太可怕了).先别急,看看Diagnostic Buffer中的信息吧,她会告诉你什么时候,哪个Block出了什么错误,比如某个FB 块忘了下载了(汗) 当然,更深入的分析需要用其他手段跟踪调试了. 作用: 错误诊断/定位

调用方法: 主菜单> PLC >CPU Message... 主菜单> PLC >Diagnostic/Setting >Module Information > Diagnostic Buffer (3) Reference Data 根据你编写好的程序,STEP7程序会通过统计分析得出一堆数据,于是我们可以通过相应的视图分析:变量的使用状况,程序结构,内存占用情况,没用到的symbol和程序中只有绝对地址没有symbol名的M点.偶认为一个比较大的程序写完之后,应该调用reference Data审视一番,做到心中有数,这是一个好的习惯.另外,cross reference可以对变量跟踪定位,在引用表上双击变量名,程序就显示相应的位置. 有些Bug也可以从Reference Data 表格中嗅出来。总之,善于利用此类统计信息对程序分析大有好处. 作用: 静态统计分析 调用方法: 主菜单> Options >Reference Data... (4) STL单步调试/PLCSIM (仿真器)single scan(单循环)调试 这两种手段本来没多大联系,但它们都属于细粒度的动态调试方法,因此就列在一块儿了,它们用于对付比较坚硬的BUG,还有就是对分析别人的STL程序有点儿用. 作用: 细粒度动态跟踪调试 调用方法: STL设断点的条件比较严格: 1.在LAD/STL/FBD编辑器菜单中选择 Debug>Operation>test operating

相关文档
最新文档