登录
首页 PLC论坛 欧姆龙OMRON
回帖 发帖
正文

主题:omron CP1H学习过程中的疑问

点击:2143 回复:7

本人刚从事PLC开发,算是学习和准备阶段吧,用的是omron CP1H-XA40DT-D
以前做单片机C51和汇编的,熟悉实时任务调度系统概念。
我看了一下PLC的任务概念貌似就是内部cpu对任务的轮询处理,和单片机概念一致。
了解了一下概况,对指令掌握不够深入,需要多看多做一些案例来了解细节.
现在碰到一个案例提到的SNXT和STEP指令,看了编程手册后有一些疑问,想请教各位:
1、工序步进控制概念很好理解,实际生产线最需要。问题是程序角度怎么理解。
如图所示(编程手册的案例截图)
附件
这里的反复执行工序A 我的理解是每次程序执行时,执行一遍工序A,然后跳过后边的所有工序进入后续梯形图,而不是相当于for/while循环。这部分理解没错的话请给予确认。即便如此,如果推进到B工序,下次执行直接从B工序执行?前面的代码都跳过?这岂非相当于一个入口指针之类。
2、对于指令的执行时序上也有些疑问,好比TIM定时器,如图:
附件
这里按顺序执行和任务轮询的思路,岂非每次执行这段程序都要启动一遍定时器(只要0.00有效)。按理反推,或许定时器在计数结束前不接受新的设置,指令说明里没提到啊
11-08-12 10:31
步进么就相当于C语言的Switch语句而已。
11-08-12 14:13
第一个是这样.一旦步序SNXT(09)被执行,步序将持续,直到步执行结束指令:无控制位的STEP(08)为止.也就是说条件A满足执行的程序中应该有B或者是C等条件为1的情况,因为执行步序的目的是让程序中部分程序一步接一步的执行才使用的.那么如此一步接一步执行直到无条件的STEP(08)为止,完成一个步序程序段.
如果不是使用步序的功能,那不要用这种指令.
第二个,其实和你的单片机类似,你在计数时总有个中间转存的寄存器吧,PLC里的计时也一样,每个扫描周期时,计时器的中间值是在内部保存的,你单片机不也是如此吗
11-08-12 14:24
我极少做步进(SFC)程序,所以象OMRON  和松下的,虽说都在用,但就是不太记得这些指令是怎么写的了。SFC格式的程序,有时也好用,但更多的时间是不好用。
11-08-12 20:32
4楼
该帖内容不符合相关规定!
11-08-13 14:29
谢谢几位的解答
理解加深!
核对指令文档后发现关于定时器的问题不存在了,他是靠上升边沿触发的。
关于SNXT问题的补充:
如果按图例满足a条件执行A工序(循环),满足b条件执行工序B(循环),满足C条件执行工序C(循环),满足d条件退出步进控制,这样作为程序执行流程也是可以的,无非是多几个while。但是我看过另外一些案例后推翻了这种理解方式--在每个工序之间启动定时器,时间到了再进入下个工序。这种时间都是10S数量级以上的。程序的一个环节某一次执行不可能循环等待10S,所以我想案例视图中的循环执行应该是工序状态而非某一时间片的执行流程。
这是SNXT指令的执行流程理解。在这个基础上,使用指令应当没问题了。从另一个角度讲,PLC内部最终还是个单片机,梯形图还是靠CPU指令系统来执行的,SNXT指令的执行由于存在时效性,我希望理解他是如何被解析/控制执行的。
PLC结构有系统程序区,我想这大概就是指令解析系统。
从SNXT指令的文档上看,有点和IL/ILC指令类似,因为“进入下一个步进后,对之前的工序(继电器)ON->OFF,对下一工序(继电器)OFF->ON” 貌似根据步进进度会对前面代码做锁定,但即便如此,指令解析系统还是要做代码段互锁标记设置吧!
11-08-15 10:44
不如梯形图的容易理解
11-08-15 14:05
7楼
该帖内容不符合相关规定!
11-08-15 17:21

工控新闻

更多新闻资讯