您现在所在的是:

西门子SIEMENS

回帖:4个,阅读:644 [上一页] [1] [下一页]
* 帖子主题:

关于scl编程

984
zhou1211
文章数:10
年度积分:50
历史总积分:984
注册时间:2008/8/22
发站内信
发表于:2013/11/6 16:52:06
#0楼
小弟初学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
2078
381250356
文章数:234
年度积分:57
历史总积分:2078
注册时间:2011/6/21
发站内信
发表于:2013/11/6 17:16:07
#1楼
格式可以参照下面

FUNCTION_BLOCK FB1
VAR

A:BOOL;
END_VAR

//MAIN

A:=TRUE;





END_FUNCTION_BLOCK





你的结尾不对
4848
576187527
文章数:2422
年度积分:50
历史总积分:4848
注册时间:2010/8/1
发站内信
发表于:2013/11/6 18:47:04
#2楼
不会
38110
cvlsam 版主
文章数:12488
年度积分:721
历史总积分:38110
注册时间:2001/12/22
发站内信
2018论坛贡献奖
2017论坛贡献奖
2016论坛贡献奖
2015论坛贡献奖
2013论坛贡献奖
2012论坛贡献奖
2011论坛贡献奖
2011国庆活动
2010论坛杰出贡献奖
发表于:2013/11/6 20:07:16
#3楼
鉴于现在西门子软件处于多种软件混用的阶段,请楼主应该说明软件的类型:
例如:在传统的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<MIN THEN OUT:=MIN;
   ELSE OUT:=MIN;
 END_IF;
END_FUNCTION

而同样的程序在西门子的新版博图软件却变成了:
附件 snap1.jpg

可以看到,不再有FUNCTION FC1
               END_FUNCTION这样的结构,甚至于变量的声明都已经变成了列表形式。

如果你不是在博图的环境下编程,请注意,西门子的程序是从BEGIN开始的,而你的程序中却未能看到BEGIN。要知道,SCL(其他厂家称作ST)是类Pascal语言结构,而Pascal的很显著的特点就是使用BEGIN……END作为块的。

Good Luck~
984
zhou1211
文章数:10
年度积分:50
历史总积分:984
注册时间:2008/8/22
发站内信
发表于:2013/11/7 16:03:21
#4楼
 楼上的解释能有所启示了,本人正是用的博图,目前的发展趋势也是语言的可移植性,考虑到客户对plc的要求不近相同,光熟悉西门子往往不够,所有在基本了解简单操作后,能用通用语言在各plc上编程那是再好不过了

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2025 Gkong.com, All Rights Reserved

62.4004