zhou1211
级别: 略有小成
精华主题: 1 篇
发帖数量: 205 个
工控威望: 362 点
下载积分: 1172 分
在线时间: 66(小时)
注册时间: 2013-11-04
最后登录: 2024-09-18
查看zhou1211的 主题 / 回贴
楼主  发表于: 2013-11-06 14:58
   小弟初学scl编程,有很多不懂的地方,而且网上资料也很少,我在看资料学习过程中有个语句是这么写的
   FUNCTION FC1:VOID
    还有种写法是
   FUNCTION_BLOCK FB1:
  无论我怎么写,都提示操作参数未定义
  求解?
function_block fb3
  VAR_TEMP
  END_VAR
  END_FUNCTION_BLOCK
zhou1211
级别: 略有小成
精华主题: 1 篇
发帖数量: 205 个
工控威望: 362 点
下载积分: 1172 分
在线时间: 66(小时)
注册时间: 2013-11-04
最后登录: 2024-09-18
查看zhou1211的 主题 / 回贴
1楼  发表于: 2013-11-06 15:04
图片:
图片:
    没人能解答么,这还是网上看到的唯一的,也是最简单的实例,这个在别人那跑写得灰直冒,到我这第一步都踏不出是怎么回事
z061403
级别: 略有小成
精华主题: 0
发帖数量: 256 个
工控威望: 390 点
下载积分: 1242 分
在线时间: 394(小时)
注册时间: 2011-11-17
最后登录: 2022-12-31
查看z061403的 主题 / 回贴
2楼  发表于: 2013-11-06 15:41
//**********************************************************//
FUNCTION FC201 : VOID   //Speed_block

TITLE = 'Speed Block '
VERSION: '3.1'
AUTHOR:fhqdnvl
NAME: Name
FAMILY: Family

VAR_INPUT        // Input Parameters
       //all key
Speed_SV    : REAL;       //Speed SV
Number_PV   :INT;         //6RA70 chack number  16384=100%
Gearshift   :REAL;        // unit   M   for example:1.2M
Drive_Number:REAL;        //Drive  big number for example:16384=100%
Pi          :REAL;        //3.1415926
D           :REAL;        //  roller  diameter
Motor_RPM   :REAL;        //motor data
END_VAR


VAR_IN_OUT          // I/O Parameters

END_VAR

VAR_OUTPUT          // Output Parameters
Number_Give:  INT;   //6RA70 give number  16384=100%
Speed_PV   :  REAL;  //Speed PV
END_VAR

VAR_TEMP         //Temp  Parameters
    Temp1:real;   // Temp value1  Number_PV
    Temp3:REAL;   //Number_Give
    Temp2:REAL;   //Speed_Sv限制
END_VAR
  //*******************************************************************************//
    IF Temp2 <= 1200 THEN     //High  1200M/S
         Temp2:=Speed_SV;
        ELSE
            Temp2:=1200;
      END_IF;
//*******************************************************************************//
    Temp3:=(Temp2*Gearshift*Drive_Number)/(Pi*D*Motor_RPM);         //****************   speed give drive**********//
          IF Temp3 >= 16384  THEN                      // give number drive
        Temp3:=16384;
        END_IF;
Number_Give:=DINT_TO_INT(REAL_TO_DINT(Temp3));     //int number give drive

//*******************************************************************************//
Temp1:=DINT_TO_REAL(INT_TO_DINT(Number_PV)) ;      // real number     //******************  Speed PV number drive*******//
Speed_PV:=(Temp1*Pi*D*Motor_RPM)/(Drive_number*Gearshift);   //reselt
    ;
END_FUNCTION
zhou1211
级别: 略有小成
精华主题: 1 篇
发帖数量: 205 个
工控威望: 362 点
下载积分: 1172 分
在线时间: 66(小时)
注册时间: 2013-11-04
最后登录: 2024-09-18
查看zhou1211的 主题 / 回贴
3楼  发表于: 2013-11-06 15:48
  感谢回复,不过程序拷进去还是大片飘红,几乎所有的变量都飘红,外加FUNCTION还是提示未定义
zhou1211
级别: 略有小成
精华主题: 1 篇
发帖数量: 205 个
工控威望: 362 点
下载积分: 1172 分
在线时间: 66(小时)
注册时间: 2013-11-04
最后登录: 2024-09-18
查看zhou1211的 主题 / 回贴
4楼  发表于: 2013-11-06 15:55
图片:
看图片
zhou1211
级别: 略有小成
精华主题: 1 篇
发帖数量: 205 个
工控威望: 362 点
下载积分: 1172 分
在线时间: 66(小时)
注册时间: 2013-11-04
最后登录: 2024-09-18
查看zhou1211的 主题 / 回贴
5楼  发表于: 2013-11-06 16:20
貌似我这上面写function就不对,快捷语法栏没有function这个函数,程序里也只能显示定义了的参数,就是前面会加#号
fangwang
级别: 探索解密
精华主题: 0
发帖数量: 6 个
工控威望: 136 点
下载积分: 954 分
在线时间: 7(小时)
注册时间: 2013-06-05
最后登录: 2014-02-26
查看fangwang的 主题 / 回贴
6楼  发表于: 2013-12-27 21:34
图片:
空程序没有错呀