技术论坛

 回复:产品技术介绍——S7-1200编程软件使用进阶

返回主题列表
作者 主题

奇侠

经验值:6044
发帖数:3917
精华帖:20
楼主    2011-05-16 19:33:14
主题:产品技术介绍——S7-1200编程软件使用进阶
在上一个帖子中,我们已经探讨了Step7 Basic V10.5的安装和使用技巧,相信大家对这个新生软件有了初步的认识。但是实际编程使用中,只知道这些技巧还是远远不够的,我们可能还会遇到更多的问题。接下来我们在此基础上,针对S7-1200的编程和使用,就以下几个方面做进一步的探讨。
1. OB块的使用
2. 数据块的概念
3. 定时器和时钟的使用
4. 故障诊断
对于S7-1200PID控制、通讯、运动控制部分,已经在技术论坛中做过专题讨论,大家可以参考以下专题:
SIMATIC S7-1200 PID等闭环控制:
http://www.ad.siemens.com.cn/club/bbs/post.asp?b_id=50&a_id=661565&s_id=0&num=50#anch
SIMATIC S7-1200自由口通信:
http://www.ad.siemens.com.cn/club/bbs/post.asp?b_id=50&a_id=643478&s_id=0&num=57#anch
S7-1200面板及以太网通信:
http://www.ad.siemens.com.cn/club/bbs/post.asp?b_id=50&a_id=692139&s_id=0&num=0#anch
SIMATIC S7-1200 运动控制:
http://www.ad.siemens.com.cn/club/bbs/post.asp?b_id=50&a_id=679974&s_id=0&num=0#anch

活动奖励:
此次集中交流将持续至7月6日,其中所有精华帖作者将获得加倍精华奖励积分;最终所有有效留帖的网友将获得加倍发帖积分。更多积分带给您更多奖品兑换的自由。
对于有突出发言贡献的网友,还可以在当前的可兑换奖品中免费挑选任一款奖品。
交流结束后也将专门整理重要内容,供广大网友分享参考。
预祝大家交流愉快,收获丰富!
密切相关
侠客

经验值:685
发帖数:183
精华帖:10
10楼    2011-05-17 21:41:42
精华帖  主题:回复:产品技术介绍——S7-1200编程软件使用进阶
S7-1200 变量强制功能的使用
变量强制功能在watch table里,所以要强制变量,先添加一个watch table,然后把你要强制的变量填进去。

1、显示强制变量列
默认情况下,watch table是不显示强制变量列的。默认情况下它是隐藏的。我不知道这理论是不是适合中国用户,但姑且认为他们是对的吧。反正显示强制变量列也就是按个按钮,相信绝大多数用户都能自己找到的。

2、给强制变量加 :P
S7-1200只能对外设IO进行强制而不能对过程映象和M区变量进行强制,据说对过程映象和M变量区强制的硬件成本很高,只有S7-400才能作到。所以,要想强制变量就需要在watch table里写外设IO地址,而外设IO地址的写法就是在过程映象地址后面加:P
过程映象地址: Q0.0
外设IO地址: Q0.0:P
加了:P之后,你就可以发现强制变量列的check-box可以勾选了(否则那是灰的)

最后一步。先点"Monitor all"再点"Start or replace forcing",这就完成了

看不见"Monitor value"是正常的,因为外设IO的值是不能监控的。看到最左边那个红色的"F",这就表示强制成功了。
密切相关
侠客

经验值:685
发帖数:183
精华帖:10
11楼    2011-05-17 21:47:05
精华帖  主题:回复:产品技术介绍——S7-1200编程软件使用进阶
对于变量强制要补充的几点:
1、当CPU中有强制变量时是不能对CPU下载硬件的,系统会提示 "Modifying test functions are active. Thus downloading the hardware configuration is denied"。如果你看到这样的提示而你本身又没在调试PLC,就该想到可能是PLC上有强制变量造成的。
S7-1200的一个硬件设计问题就是LED灯不能显示PLC上有强制变量,可能是为了节省成本,这点确实会给用户造成一些不便,希望以后会改进。
如果你想知道PLC里有哪些变量被强制了,可以在watch table里把强制的变量上载回来,然后对他们的状态进行修改。比如你想下载硬件配置就得先把强制停掉。上载强制变量得方法很简单,就点一下"Show all forced value from this CPU"按钮 ,相信大家自己也能发现,不过这个按钮只有在监控的状态下才能点。
2、1200只强制外设IO而不强制过程映象。
如果你把Q0.0:P强制成1,然后编了这样一段程序

程序的最终运行结果是"Fan"的输出是0。因为PLC只强制了外设IO,过程映象地址Q0.0是不受强制功能映象的,因此它被Reset成0了,最终导致"Fan"的输出是0。
Automann
至圣

经验值:18299
发帖数:6168
精华帖:137
12楼    2011-05-18 06:17:28
精华帖  主题:回复:产品技术介绍——S7-1200编程软件使用进阶
1200定时器计数器的特点与使用技巧
1200采用IEC格式的定时器和计数器,它们都属于功能块(FB),有自己专用的存储区(背景数据块)。其优点是可以保证项目具有良好的可移植性。与传统的定时器、计数器不同,调用时需要指定其背景数据块。
如果使用的定时器、计数器指令很多,将会生成大量的数据块“碎片”。为了解决这个问题,可以在功能块中调用定时器、计数器指令,在功能块的界面区定义数据类型为IEC_Timer或IEC_Counter的静态变量(见下图),用这些静态变量来提供定时器和计数器的背景数据。这种功能块的背景数据块被称为多重背景数据块。


这样多个定时器或计数器的背景数据被包含在它们所在的功能块的背景数据块中,而不需要为每个定时器或计数器设置一个单独的背景数据块。
只能以多重背景方式调用STEP 7 Basic提供的库中包含的功能块,不能以多重背景方式调用用户创建的功能块。
追求完美
Automann
至圣

经验值:18299
发帖数:6168
精华帖:137
14楼    2011-05-18 12:05:07
精华帖  主题:回复:产品技术介绍——S7-1200编程软件使用进阶
S7-1200的时钟组态监控和编程举例
1.组态实时时钟
在PLC断电时,用超级电容器给CPU的实时时钟(Time-of-day clock)供电。超级电容器充足能量后可以保证实时时钟运行10天。
组态CPU的属性时,选中巡视窗口左边的“日时间”组,将默认的时区(柏林)改为北京、重庆。不要选中“激活夏令时”复选框。
2.用STEP 7 Basic显示和设置实时时钟的日期和时间
在线模式时选中工作区左边窗口中的“设置日时间”,选中右边窗口的复选框“从PG/PC获取”,点击“应用”按钮,可使PLC和计算机的实时时钟同步。未选中该复选框时,可以在“模块时间”区设置CPU的日期和时间。
3.日期时间的数据类型
数据类型Time是单位为ms的双整数,数据结构DTL(日期时间)为12字节,分别是年(2字节)、月、日、星期、时、分、秒、纳秒(4字节),未注明的为1字节,均为BCD码。可以用STEP 7 Basic来监控日期时间变量。
4.实时时钟指令
指令WR_SYS_T(写系统时间)将输入的DTL值写入PLC的实时时钟。
下图中的指令RD_LOC_T读取本地时间,保存在数据类型为DTL的局部变量DT5中。DT5.HOUR是小时值。用Q0.0来控制路灯,20点开灯,6点关灯。20:00~0:00时上面的比较触点接通;0:00~6:00时下面的比较触点接通。
S7-1200还有一些时间数据类型转换指令和时间值加、减指令。

追求完美
www123456
至圣

经验值:12603
发帖数:2379
精华帖:86
15楼    2011-05-18 17:53:40
精华帖  主题:回复:产品技术介绍——S7-1200编程软件使用进阶
编程时可利用系统和时钟存储器: 启用一个字节用于“系统存储器”功能,用于“首次扫描”位、“始终打开”位、“始终关闭”位,并启用一个字节用于“时钟存储器”功能(其中每个位都按预定义频率打开和关闭),类似S7-200里的特殊继电器SM0.0,SM0.1等。
编程时还可利用数据类型Pointer指针、Any指针和Variant指针等,很方便。

asline
游民

经验值:79
发帖数:13
精华帖:2
19楼    2011-05-19 10:41:27
精华帖  主题:回复:产品技术介绍——S7-1200编程软件使用进阶
在S7 300/400中OB块的序号只是一个标志,而在S7 1200中OB块序号的大小也是有实际作用的。比如说可以为系统生多个启动OB,也可以生成多个循环OB(300/400中仅有一个OB1),这些OB块是按照它们的序号顺序执行。另外延时中断与循环中断OB块个数加起来不能超过4个,超过就不能再添加了。
来自西门子技术支持与服务
Automann
至圣

经验值:18299
发帖数:6168
精华帖:137
22楼    2011-05-19 13:44:38
精华帖  主题:回复:产品技术介绍——S7-1200编程软件使用进阶
诊断错误中断的实验
CPU的型号为CPU 1214C,使用了一块AO信号板,设置AO通道输出0~20mA的电流,启用断路诊断功能。
生成诊断错误中断组织块OB82,双击打开OB82编写程序,在每次调用OB82时,用INC指令将MB30加1。
将程序块和组态信息下载到CPU,CPU切换到RUN模式。用监视表监视AO信号板的输出QW80和MB30,启动监控功能。在QW80的“修改值”列输入一个较大的值,将它写入AO通道。断开AO模块通道0的输出电路,CPU模块的ERROR LED和AO信号板的红色LED闪动,调用一次OB82。每调用一次OB82,MB30的值被加1。
接通AO模块的输出电路,故障消失,错误LED熄灭,又调用一次OB82。
双击项目树的PLC_1文件夹中的“在线和诊断”,打开在线与诊断视图。点击工具栏上的“转到在线”按钮,进入在线模式。选中在线与诊断视图左边窗口中的“诊断缓冲区”(见下图),右边窗口是诊断缓冲区。选中“Wire break”(断路)诊断事件,下面是事件的详细信息,“输入事件”表示事件刚发生,“离开事件”表示事件刚结束。


缓冲区中的条目包含事件被记录时的日期和时间,以及对事件的描述。最上面的是最后发生的事件。选中某个事件,诊断缓冲区下面是该事件的详细信息。
点击“关于事件的帮助”按钮,将看到选择的事件的详细信息和解决问题的方法。
点击“打开块”按钮,引起错误的指令所在的离线的块被打开,可以检查和修改块中的程序,然后将它下载到CPU。
点击“另存为”按钮,诊断缓冲区的内容被保存为文本文件。
追求完美
伊默
至圣

经验值:19231
发帖数:4256
精华帖:118
25楼    2011-05-21 14:57:00
精华帖  主题:回复:产品技术介绍——S7-1200编程软件使用进阶
1200可以自己添加多个OB,然后在中断组态时选择对应的OB即可!
比如你自己添加了两个:OB200、OB201
I0.0上升沿中断对应OB201
HSC1PV=SV中断对应OB202
I can do it
asline
游民

经验值:79
发帖数:13
精华帖:2
35楼    2011-05-24 10:34:20
精华帖  主题:回复:产品技术介绍——S7-1200编程软件使用进阶
quote:以下是引用寒天1220在2011-05-23 08:45:29的发言:
S7-1200的PID调节功能中,除了设置比例,积分,微分参数外,还有三个参数,分别是(Proportional weighting),(derivative weighting),(derivative filter coefficient).这三个参数是做什么用的?


我们举一个水位调节的例子,来说明(Proportional weighting)参数的作用。比如有一个水池,有一个进水管,一个出水管,调节进水管的流量,使水位保持稳定。
先来说一下这个系统的两个性能。如果给定一个水位设定,考察实际水位能否及时跟到位,这个叫做系统“设定值跟随”性能;如果水位已经到达稳定状态,出水管流量变化,水位也会随之变化,考察实际水位能否及时保持为设定水位,这个叫做系统“负载扰动”性能。
因为我们的主要目的是为了保持水位稳定,所以水位设定值一般是恒定值,主要考察系统“负载扰动”性能。假如我们已经整定好了PID参数,系统对于“负载扰动”调节性能很好,运行一段时间也很稳定,看起来似乎万事大吉了。但突然有一天系统检修,放空了水池,等到检修完毕,启动系统为水池注水,但是发现系统对于设定水位有很大的阶跃超调。这时该怎么办?需要对PID参数重新整定吗?如果重新整定,阶跃超调整好了,“负载扰动”调节性能肯定会受影响,这下似乎麻烦大了。
但如果你使用的是S7-1200做的控制系统,那么恭喜你,有一条捷径可以走。减小(Proportional weighting)比例权重就可以减小系统阶跃响应超调,而且不影响系统“负载扰动”性能。
来自西门子技术支持与服务
Automann
至圣

经验值:18299
发帖数:6168
精华帖:137
45楼    2011-05-28 10:41:55
精华帖  主题:回复:产品技术介绍——S7-1200编程软件使用进阶
S7-1200的定时器的内部运行机制
quote:以下是引用asline在2011-05-25 16:45:51的发言:
看来这个话题太广了。我们先来讨论一下定时器的使用问题吧。请大家思考一个问题:在使用计时器(TP、TON、等)的时候,计时器的计时时间与CPU的扫描周期有没有关系?扫描周期的长短对计时精度有没有影响?在CPU扫描到TP指令之前或之后,还没有再次扫描到TP指令的时候,计时器还继续计时吗?

S7-1200的IEC格式的定时器属于功能块。在插入定时器指令时,要求创建一个16字节的IEC_Timer数据类型的DB结构(即背景数据块),来保存有关的数据。在功能块中,可以事先创建一个IEC_Timer数据类型的静态变量(多重背景),然后将它指定给定时器指令。
CPU没有给任何特定的定时器指令分配专门的资源。每个定时器使用DB结构和一个连续运行的内部CPU定时器(我的理解是一个硬件定时器)来执行定时。
在定时器指令的输入IN的上升沿启动定时器时,连续运行的内部CPU定时器的值将被复制到为该定时器指令分配的DB结构的元素START(起始值)中。
该起始值在定时器继续运行期间将保持不变,以后将在每次更新定时器时使用。
以下条件时将会执行定时器更新:
1)执行定时器指令(TP、TON、TOF 或 TONR);
2)定时器结构的元素ELAPSED(经过的时间)或位输出Q作为其它指令的参数,该指令被执行。
更新定时器时,将从内部CPU定时器的当前值中减去上述起始值,得到经过的时间ELAPSED。再将ELAPSED与预设值PT进行比较,以确定定时器的位输出Q的状态。然后更新该定时器的DB结构的元素ELAPSED和Q。达到预设值PT后,定时器不会继续累加经过的时间ELAPSED。
STEP 7 Basic的V11版与V10.5版相比,增加了类似于S7-300/400的定时器线圈指令。
从上述的定时器内部的定时机制可知,在使用定时器时,其定时精度与CPU的扫描周期有很大的关系。在CPU两次更新定时器之间,定时器的输入、输出参数保持不变。
为了验证上述结论,在FB1中调用定时器指令TP,在OB1中用I0.1作为调用条件,调用FB1。用监视表格监视定时器的输出Q和经过的时间ET,用输入IN的上升沿启动定时器后,如果I0.1为0状态,没有调用FB1和执行定时器指令,Q和ET保持不变。只有在调用FB1,执行定时器指令时,ET的值才会变化。
追求完美
聚沙成洲
奇侠

经验值:7266
发帖数:1835
精华帖:22
75楼    2011-07-06 10:27:10
精华帖  主题:回复:产品技术介绍——S7-1200编程软件使用进阶
创建一个全局DB时,STEP 7 V10.5 和V11在定义断电保持有什么不同

为了避免当电源失效后数据的丢失需要指定全局数据块的特殊的数据作为断电保持特性 。 这些数据被保存在断电保持区中。当创建全局数据块时,需要指出是否定义所有的数据还是单独的数据作为断电保持的变量。然后这个定义步骤或者在 "Add new block" 对话框中的选择在两个不同版本的STEP 7里是不同的。

在STEP 7 V10.5里定义数据块中的变量的断电保持
在项目视图里的"Program blocks" 文件下打开 "Add new block" 对话框并选择 "Symbolic access only"选项。

如果使能了"Symbolic access only" 选项 ,对于数据块中的每个DB变量都可以配置单独的断电保持。
如果没有使能"Symbolic access only" 选项 , 就不能对数据块中的每个DB变量都单独配置断电保持。 在这种情况下只能配置全部的变量为断电保持或者全部不是断电保持。


在STEP 7 V11.0里定义数据块中的变量的断电保持
在项目视图里的"Program blocks" 文件下打开 "Add new block" 对话框。在STEP 7 V11.0里不像STEP 7 V10.5一样可以选择块的访问。

如果选择"Optimized" 选项 (缺省设置如图 02),对于数据块中的每个DB变量都可以配置单独的断电保持。
如果选择"Standard - compatible with S7-300/400" 选项作为数据访问方式, 就不能对数据块中的每个DB变量都单独配置断电保持。 在这种情况下只能配置全部的变量为断电保持或者全部不是断电保持。

注意
仅在 "Add new block"里在STEP 7 V11.0可以定义数据块的访问或在 in STEP 7 V10.5选择"Symbolic access only" 选项。一旦创建了功能块,就不能修改定义设置。只能通过下面的步骤查看数据块配置的属性。

在项目视图中,右键单击数据块,在弹出的菜单中选择"Properties..."选项。
在右面的屏中的"Attributes" 标签中可以查看是否
对于DB块配置了"Optimized block access" (STEP 7 V11.0)。
对于DB块配置了"Symbolic access only" (STEP 7 V10.5)。
如果在V11.0里"Optimized block access" 属性没有被使能(没有勾选) , 那么数据块就被配置为 "Standard - compatible with S7-300/400" 。


https://support.automation.siemens.com/CN/adsearch/resultset.aspx?region=CN&lang=zh&netmode=internet&ui=MTg4ODY4ODMA&term=portal&ID=50696280&ehbid=50696280
www123456
至圣

经验值:12603
发帖数:2379
精华帖:86
76楼    2011-07-06 10:43:02
精华帖  主题:回复:产品技术介绍——S7-1200编程软件使用进阶
编程时可使用DB数据块和STRUCKT数据类型,正因为具有了这两个必备的条件这才引出此系统的一个很重要的功能,这就是基于控制对象的编辑和编程,添加控制对象也只需要单击一下鼠标。 比如添加新的对象时,工程组态系统的“添加新对象”(Add new object)窗口中会显示相关设置,根据对象的功能为对象命名。微调各种对象时,用户可以使用功能描述,分配完对象的所有信息后,编辑器中会立即打开该对象。
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。