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

主题:关于scl编程

点击:650 回复:4

小弟初学scl编程,有很多不懂的地方,而且网上资料也很少,我在看资料学习过程中有个语句是这么写的
  FUNCTION FC1:VOID
   还有种写法是
  FUNCTION_BLOCK FB1:
 无论我怎么写,都提示操作参数未定义
 求解?
function_block fb3
 VAR_TEMP
 END_VAR
 END_FUNCTION_BLOCK

附件 QQ图片20131106145704.jpg
附件 QQ图片20131106144900.jpg
附件 QQ图片1.jpg
13-11-06 16:52
格式可以参照下面
FUNCTION_BLOCK FB1
VAR
A:BOOL;
END_VAR
//MAIN
A:=TRUE;
END_FUNCTION_BLOCK
你的结尾不对
13-11-06 17:16
不会
13-11-06 18:47
鉴于现在西门子软件处于多种软件混用的阶段,请楼主应该说明软件的类型:
例如:在传统的Step7中,SCL程序:
FUNCTION FC1:VOID
VAR_INPUT
 MAX:INT;
 IN :INT;
 MIN:INT;
END_VAR
VAR_OUTPUT
 OUT:INT;
END_VAR
BEGIN
 IF IN>MAX THEN OUT:=MAX;
   ELSIF IN    ELSE OUT:=MIN;
 END_IF;
END_FUNCTION
而同样的程序在西门子的新版博图软件却变成了:
附件 snap1.jpg
可以看到,不再有FUNCTION FC1
               END_FUNCTION这样的结构,甚至于变量的声明都已经变成了列表形式。
如果你不是在博图的环境下编程,请注意,西门子的程序是从BEGIN开始的,而你的程序中却未能看到BEGIN。要知道,SCL(其他厂家称作ST)是类Pascal语言结构,而Pascal的很显著的特点就是使用BEGIN……END作为块的。
Good Luck~
13-11-06 20:07
 楼上的解释能有所启示了,本人正是用的博图,目前的发展趋势也是语言的可移植性,考虑到客户对plc的要求不近相同,光熟悉西门子往往不够,所有在基本了解简单操作后,能用通用语言在各plc上编程那是再好不过了
13-11-07 16:03

工控新闻

更多新闻资讯