技术论坛

 西门子200沿的应用

返回主题列表
作者 主题
WWCWWC
至圣

经验值: 71500
发帖数: 7980
精华帖: 145
楼主    2018-01-17 11:19:55
主题:西门子200沿的应用 精华帖 

西门子200沿的应用

   今天给工厂编辑一个小的控制程序时,在编辑过程中疏忽了一个问题,图示:


   请大家看看我红色框图中外部“位”及“沿”的使用,开始编辑的本意是当状态转换到自动操作时,给顺控指令及相应的输出做一些初始化操作。将程序下载到cpu后,监控顺控指令并没有按我这个“思路”运行,打开状态图表监控,顺控指令没有一个“步”被激活,也就是说初始化操作无效。

当I0.0(自动_手动状态转换)= 1时,调用自动子程序中的上升沿并没有起作用。于是,将自动子程序网络1段的I0.0改为其它“位”地址I0.3后,程序能够正常运行,图示:


   那么,上升沿无效的原因就在这个调用子程序的条件I0.0的应用上是肯定的。这个过程中我曾经转换过I0.0状态转换开关,也就是说这个I0.0的状态肯定是有0和1的转换过程。

打开软件“F1”帮助,有这么一段提示的话,图示:


   这里的“首次扫描”,应该是指调用子程序时的第一次扫描周期中,这样,在同一个周期内作为同一个“位”地址,调用子程序及上升沿触发的条件就无法满足,子程序初始化中的上升沿无效也在“情理”之中了。

   程序虽然相对简单,但要深刻领悟简单指令中的应用,还是需要注意应用时其中的要求及说明,不然,掉“坑”是必然了。因为在现场遇见了这个问题,马上修改了程序,也就没有把在线监控的截图给做上,请谅解。


云山雾绕
至圣

经验值: 16196
发帖数: 2382
精华帖: 0
1楼    2018-01-17 12:53:21
主题:回复:西门子200沿的应用

为什么要有调试呢?就是发现和解决问题的。


开心每一天,懂得包容、感恩!
WWCWWC
至圣

经验值: 71500
发帖数: 7980
精华帖: 145
2楼    2018-01-17 13:16:06
主题:回复:西门子200沿的应用

仿真、调试是验证编程者思路的一种有效途径。

yanxiao
至圣

经验值: 26048
发帖数: 11948
精华帖: 43
3楼    2018-01-17 16:23:28
主题:回复:西门子200沿的应用

我觉得 W 侠 没有把问题说到痛点上。

WWCWWC
至圣

经验值: 71500
发帖数: 7980
精华帖: 145
4楼    2018-01-17 16:48:07
主题:回复:西门子200沿的应用

我自己也是有此感觉,反倒一下子也说不出一个所以然来,请版主指正。

yanxiao
至圣

经验值: 26048
发帖数: 11948
精华帖: 43
5楼    2018-01-17 20:07:20
主题:回复:西门子200沿的应用

沿指令一般是这样解释的:


P取的是I0.0的沿。似乎这样说很合理,工程应用也没问题。


那么下图:


网络1和网络2中的P,又取的是谁的沿?单个变量的沿?不是,是I0.0和I0.1运算后的结果的沿。

这样,问题就清楚了:P指令只看眼前,看不到I0.0和I0.1。

在STL中,沿指令只看栈顶值,LAD中,沿指令只看它面前的能流。


所以, W 侠的第一次问题出现时,尽管 I0.0 有0到1的变化,可是 P 指令前的能流,却没有0到1的变化。


WWCWWC
至圣

经验值: 71500
发帖数: 7980
精华帖: 145
6楼    2018-01-18 08:30:26
主题:回复:西门子200沿的应用

非常感谢版主的指正。

我是这样理解这个状态的,当I0.0 = 1时,子程序调用有效,因为与调用时I0.0是同一个周期内有效,沿无法检测到能流。

yecao2006
至圣

经验值: 17879
发帖数: 1522
精华帖: 2
7楼    2018-01-18 09:31:06
主题:回复:西门子200沿的应用

版主,能流是前面整个状态的变化而不是某一位的变化?是这样理解吗?

我回来了!继续努力!
WWCWWC
至圣

经验值: 71500
发帖数: 7980
精华帖: 145
8楼    2018-01-18 09:35:56
主题:回复:西门子200沿的应用

应该是沿前面的所有逻辑运算结果。

z100o
侠圣

经验值: 3003
发帖数: 455
精华帖: 0
9楼    2018-01-18 10:03:41
主题:回复:西门子200沿的应用

学习了 王工,以前反反复复的栽在边沿上,现在总算摸到点“套路”了,每次编程都是按自己的固定套路就不容易出错了,呵呵

Automation
看雪001
至圣

经验值: 19296
发帖数: 2065
精华帖: 72
10楼    2018-01-18 16:52:28
主题:回复:西门子200沿的应用

根本原因是子程序的调用方式,即条件调用和无条件调用的区别。

200plc子程序中要用沿指令,我都这么写:


不要用P,用一个中间位过渡一下。


大道至简,知易行难
yanxiao
至圣

经验值: 26048
发帖数: 11948
精华帖: 43
11楼    2018-01-18 18:23:14
主题:回复:西门子200沿的应用

系统自动为每一个沿指令分配一个唯一的位,来记录前一次扫描的状态,效率应比使用M位的还高。

吸引力
侠士

经验值: 1480
发帖数: 49
精华帖: 0
12楼    2018-01-18 20:42:05
主题:回复:西门子200沿的应用

 

1200/1500中的沿分得就细了。

 

没有最好,只有更好!
看雪001
至圣

经验值: 19296
发帖数: 2065
精华帖: 72
13楼    2018-01-18 23:20:04
主题:回复:西门子200沿的应用

通常,我们在讲“效率”这个词的时候,是要包含“正确、准确”这个前提的,傻瓜式操作往往也意味着低端,避免不了一些bug。

举个例子:step7里面有一个集成功能,当wincc程序和plc程序集成在一个项目中时,wincc是可以使用plc的符号变量的,也有很多人觉得这样做就会提高效率。但wincc的变量属性终究是和plc变量属性是不同的,不仅仅是要重新定义采样周期,比如plc中一些io位变量,如果直接用到wincc中,而不是以字或双字格式组态,那就是是浪费tag个数,反而低效!

借用西家的话:知其道,用其妙!一味盲目跟随,并不是知其道。



大道至简,知易行难
WWCWWC
至圣

经验值: 71500
发帖数: 7980
精华帖: 145
14楼    2018-01-18 23:57:26
主题:回复:西门子200沿的应用

我也倾向于你的观点,本想用特殊标志位SM0.1来验证一下,因手头没有实体机。等有了我验证一下就可以了。

yanxiao
至圣

经验值: 26048
发帖数: 11948
精华帖: 43
17楼    2018-01-19 08:35:35
主题:回复:西门子200沿的应用

LD I0.0

EU

一开始就把EU想象成取I0.0的沿,离掉坑里就不远了。EU是取栈顶的沿,并不直接取I0.0的沿(尽管在此例中栈顶值来自I0.0)。

LAD也一样,只取沿面前能流的沿。


退一步,EU不讲。

LD I0.0

指令取的是I0.0内部寄存器的值,和外电路中的状态不能直接等价。如果直接理解成取外电路状态,离掉坑里也不远。


您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。