作者 | 主题 |
---|---|
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沿的应用
大道至简,知易行难
|
yanxiao 至圣 经验值: 26048 发帖数: 11948 精华帖: 43 |
11楼 2018-01-18 18:23:14
主题:回复:西门子200沿的应用 系统自动为每一个沿指令分配一个唯一的位,来记录前一次扫描的状态,效率应比使用M位的还高。 |
吸引力 侠士 经验值: 1480 发帖数: 49 精华帖: 0 |
12楼 2018-01-18 20:42:05
主题:回复:西门子200沿的应用
没有最好,只有更好!
|
看雪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内部寄存器的值,和外电路中的状态不能直接等价。如果直接理解成取外电路状态,离掉坑里也不远。 |