斜坡函数发生器的SCL文件编译出错问题 点击:1058 | 回复:2



scgbb

    
  • 精华:0帖
  • 求助:3帖
  • 帖子:9帖 | 30回
  • 年度积分:0
  • 历史总积分:38
  • 注册:2014年3月30日
发表于:2015-06-29 21:43:04
楼主

斜坡函数发生器的SCL文件转自

http://www.ad.siemens.com.cn/club/bbs/post_history.aspx?b_id=4&a_id=505300&s_id=25&num=4

FUNCTION_BLOCK FB100

TITLE ="斜坡发生器"


KNOW_HOW_PROTECT 

AUTHOR : xxzzw

VERSION : 1.0


//加减速时间 > 10S

VAR_INPUT

InValue : INT ;    

AddTime : REAL ;    //单位:S

DecTime : REAL ;    //单位:S

TimeElapse : INT ;    //单位:ms

En : BOOL := TRUE;    

END_VAR

VAR_OUTPUT

OutValue : INT ;    

END_VAR

VAR

TimeTemp : INT ;    

RTemp : REAL ;    

END_VAR

VAR_TEMP

tempint : INT ;    

badd : BOOL ;    

b_add : BOOL ;    

END_VAR

BEGIN

NETWORK

TITLE =


A #En; 

JC _001; 

L 0; 

T #OutValue; 

T #TimeTemp; 

L 0.000000e+000; 

T #RTemp; 

BE ; 

_001: NOP 0; 


L #AddTime; 

L 3.000000e+000; 

BEC ; 

L #DecTime; 

L 3.000000e+000; 

BEC ; 


NETWORK

TITLE =

//程式每100ms计算一次

L #TimeElapse; 

L #TimeTemp; 

+I ; 

T #TimeTemp; 

L 100; 

BEC ; 

L #TimeTemp; 

L 100; 

-I ; 

T #TimeTemp; 


L #InValue; 

L #OutValue; 

==I ; 

BEC ; 


NETWORK

TITLE =

// In Out In > Out

// 零 正 X -DEC

// 零 负 X +DEC

// 正 正 1 +ADD

// 正 正 0 -DEC

// 正 负 X +DEC

// 负 正 X -DEC

// 负 负 1 -ADD

// 负 负 0 +DEC

L #InValue; 

L 0; 

<>I ; 

JC _300; 

//输入为零时

L #OutValue; 

L 0; 

>I ; 

JC _010; 

L 1.638400e+003; //输入为零输出为负

L #DecTime; 

/R ; 

JU _002; 

_010: L -1.638400e+003; //输入为零输出为正

L #DecTime; 

/R ; 

JU _002; 



_300: L #InValue; 

L 0; 

JC _400; 

//输入为正时

L #OutValue; 

L 0; 

JC _302; 

L #InValue; 

L #OutValue; 

>I ; 

JC _301; 

L -1.638400e+003; //输入为正输出为正,输入<输出

L #DecTime; 

/R ; 

JU _002; 

_301: L 1.638400e+003; //输入为正输出为正,输入>输出

L #AddTime; 

/R ; 

JU _002; 

_302: L 1.638400e+003; //输入为正,输出为负

L #DecTime; 

/R ; 

JU _002; 


_400: L #OutValue; 

L 0; 

<=I ; 

JC _401; 

L -1.638400e+003; //输入为负,输出为正-DEC

L #DecTime; 

/R ; 

JU _002; 

_401: L #InValue; 

L #OutValue; 

>I ; 

JC _402; 

L -1.638400e+003; //输入为负,输出为负,输入< 输出

L #AddTime; 

/R ; 

JU _002; 

_402: L 1.638400e+003; //输入为负,输出为负,输入>输出

L #DecTime; 

/R ; 

_002: L #RTemp; 

+R ; 

T #RTemp; 

L 3.276700e+004; 

>=R ; 

JC _003; 

TAK ; 

L -3.276800e+004; 

<=R ; 

JC _003; 

TAK ; 

_003: T #RTemp; 

RND ; 

T #OutValue; 

//防抖动功能

L #AddTime; 

L #DecTime; 

>R ; 

JC _004; 

TAK ; 

_004: L 1.638400e+003; 

TAK ; 

/R ; 

RND ; 

T #tempint; 

L #InValue; 

L #OutValue; 

-I ; 

JP _005; 

NEGI ; 

_005: L #tempint; 

>I ; 

BEC ; 

L #InValue; 

T #OutValue; 


END_FUNCTION_BLOCK





scgbb

  • 精华:0帖
  • 求助:3帖
  • 帖子:9帖 | 30回
  • 年度积分:0
  • 历史总积分:38
  • 注册:2014年3月30日
发表于:2015-07-01 08:12:08
1楼

编译时显示1个错误,1个警告


yuanle

  • 精华:0帖
  • 求助:0帖
  • 帖子:9帖 | 10210回
  • 年度积分:2747
  • 历史总积分:48332
  • 注册:2005年4月22日
发表于:2015-07-01 16:04:59
2楼

1、你贴出的是STL Source而不是SCL Source,它们是有区别的。

2、你需要在Source目录下建立STL Source并贴入上述代码,然后编译,你会得到没有错误和警告的程序的。


热门招聘
相关主题

官方公众号

智造工程师