登录
首页 PLC论坛 西门子SIEMENS
回帖 发帖
正文

主题:技术细节,慢慢的品。

点击:1749 回复:8


  见图 :
 
附件 01.jpg
 
附件 02.jpg
  论述一 :
         在上面两段程序基础上,说说为什么scl语句的扫描时间会比梯形图慢了。对梯形图程序而言,第一个
         扫描周期完成,电机1,2,3均接通。
         而对scl程序而言(编程方式如上),需要3个周期才能让电机全部接通。 这是因为scl语言的执行过
         程是:
         第1周期:当stat_iStatus=0时,扫描执行电机1运行语句。然后执行下一语句,将10赋给stat_iStatus。
         接下来程序跳过下面的case语句执行end_case;语句。第1周期结束。仅电机1接通。
         第2周期:判断stat_iStatus=10,扫描执行电机2运行语句。然后执行下一语句,将20赋给stat_iStatus。
         接下来程序跳过下面的case语句执行end_case;语句。第2周期结束。电机1,2接通
         第3周期:判断stat_iStatus=10,扫描执行电机3运行语句。然后执行下一语句,将30赋给stat_iStatus。
         接下来程序执行end_case;语句。第3周期结束。电机1,2,3均接通
 论述二 :
         scl程序扫描时间小于或者等于梯形图程序!因为梯形图扫描是每条指令都扫描。而scl if语句是先扫描判
         断条件,看条件结果是否为真。若不是,则跳过内部语句执行下一条扫描。如:若condtion1不满足,则不
         扫描#q_bmotor1 :=true语句,直接执行下面的end_if语句。也就是说,scl语言,每个周期的扫描时间是
         不固定的!条件不满足时,扫描时间最短。条件均满足时,最长。和梯形图相当。
19-12-04 21:15

。。。。。不知道哪个论述更正确 。
        但我偏向于论述二 , 感觉SCL还是有优势的。我理解是 :SCL节省 CPU的“体力” ----  需要干活的地方就干,
        不需要就不干 。
19-12-04 21:21
不通过技巧的话应该是ST或者SCL扫描周期更长,不过大部分在性能过剩的情况下完全无关紧要。
19-12-04 21:33
都说ST慢。
比梯形图的好处是数据计算啥的方便很多。
19-12-04 22:05
ST慢并非你描述的原因,因为你描述的原因在ST编程中可以写在一个块而不是分为3个块来写。
慢的原因在于ST在编译为二进制代码时,会产生附加代码,这些代码的运行增加的系统的负担。
附件 workpicture1.jpg
同样功能的梯形图,转换为二进制代码时的附加指令要少于ST语言产生的附加指令。
这才是ST效率没有其他语言效率高的原因,当然,编程效率方面完全看个人了,例如指令表语言较熟悉的话,效率肯定比ST语言更高了,毕竟ST语言还要定义变量………………
Good Luck~
19-12-05 08:55
如果用3条IF语句的话,好像就可以一个扫描周期完成了。
19-12-05 09:03
论述二里的,扫描周期不固定,但是应该不会小于程序的扫描周期吧?也就是肯定会大于或者等于梯形图的扫描周期,
ST(西门子SCL应该也属于ST吧)只是简化编程,方便运算,算执行快慢的话,还是直接的梯形图快吧。
纯属个人理解。
关于case语句,你这里例子使用if更好,会都判断,原本case语句使用的情况一般是只出现一种请款,所以这里用if更合适。
19-12-05 10:59
您的论述右问题的,都是三个扫描周期来执行的。您的图例条件只能满足一次,LAD中的#q_bMotor1/2/3也是按照条件来执行的,不存在您说的一次就接通啊
20-12-08 11:31
CPU运行最快的是STL语言,不是SCL与LAD.
20-12-08 11:33

工控新闻

更多新闻资讯