å˜é‡ç±»åž‹-CODESYS资æºä¸‹è½½åŒº-酷德网 - CoDeSys软件教程下载,CoDeSys工控资讯门户 
HSC6490-cn中国制造,中国芯~
查看: 29|回å¤: 0

å˜é‡ç±»åž‹

[å¤åˆ¶é“¾æŽ¥]
  • TAçš„æ¯æ—¥å¿ƒæƒ…
    擦汗
    2019-8-13 14:13
  • 签到天数: 32 天

    [LV.5]常ä½å±…æ°‘I

    • VAR 局部å˜é‡
    • VAR_INPUT 输入å˜é‡
    • VAR_OUTPUT 输出å˜é‡
    • VAR_IN_OUT 输入和输出å˜é‡
    • VAR_IN_OUT CONSTANT 传输å˜é‡
    • VAR_GLOBAL 全局å˜é‡
    • VAR_TEMP 临时å˜é‡
    • VAR_STAT é™æ€å˜é‡
    • VAR_EXTERNAL 外部å˜é‡
    • VAR_INST 实例å˜é‡


    局部å˜é‡ - VAR
    在关键字 VAR 与 END_VAR 之间,POU 的所有局部å˜é‡éƒ½å·²å£°æ˜Žã€‚这些局部å˜é‡æ²¡æœ‰ä»»ä½•å¤–部关连;也就是说,无法从外部写入。
    è¯·è€ƒè™‘å‘ VAR 添加属性的å¯èƒ½æ€§ã€‚
    示例
    [AppleScript] 纯文本查看 å¤åˆ¶ä»£ç 
    VAR
     iLoc1:INT; (* 1. Local Variable*)
    END_VAR
    

    输入å˜é‡ - VAR_INPUT
    在关键字 VAR_INPUT 与 END_VAR 之间,充当 POU 的输入å˜é‡çš„所有å˜é‡éƒ½å·²å£°æ˜Žã€‚因此,在调用ä½ç½®å¤„,å˜é‡å€¼å¯ä»¥ä¸Žè°ƒç”¨ä¸€èµ·æ供。
    请考虑添加属性的å¯èƒ½æ€§ã€‚
    示例
    [AppleScript] 纯文本查看 å¤åˆ¶ä»£ç 
    VAR_INPUT 
    iIn1:INT (* 1. Inputvariable*)
    END_VAR
    

    输出å˜é‡ - VAR_OUTPUT
    在关键字 VAR_OUTPUT 与 END_VAR 之间,充当 POU 的输出å˜é‡çš„所有å˜é‡éƒ½å·²å£°æ˜Žã€‚因此,这些值将被被移动到进行调用的 POU。
    è¯·è€ƒè™‘å‘ VAR_OUTPUT 添加属性的å¯èƒ½æ€§ã€‚
    示例
    [AppleScript] 纯文本查看 å¤åˆ¶ä»£ç 
    VAR_OUTPUT 
    iOut1:INT; (* 1. Outputvariable*)
    END_VAR
    

    函数和方法中的输出å˜é‡ï¼š
    æ ¹æ® IEC 61131-3 è‰æ¡ˆ 2,函数(和方法)å¯ä»¥å…·æœ‰é¢å¤–输出。您å¯ä»¥åœ¨å‡½æ•°è°ƒç”¨ä¸­åˆ†é…这些输出,如以下示例中所示。
    示例
    [AppleScript] 纯文本查看 å¤åˆ¶ä»£ç 
    fun(iIn1 := 1, iIn2 := 2, iOut1 => iLoc1, iOut2 => iLoc2);
    

    输入和输出å˜é‡ - VAR_IN_OUT
    在关键字 VAR_IN_OUT 与 END_VAR 之间,充当 POU 的输入和输出å˜é‡çš„所有å˜é‡éƒ½å·²å£°æ˜Žã€‚
    注: 借助于 IN_OUT 类型的å˜é‡ï¼Œå·²ä¼ è¾“å˜é‡çš„值将更改(作为指针传输,å³ï¼ŒæŒ‰å¼•ç”¨è°ƒç”¨ï¼‰ã€‚因此,此类å˜é‡çš„输入值ä¸èƒ½æ˜¯å¸¸é‡ã€‚因此,å³ä½¿æ˜¯åŠŸèƒ½å—çš„ VAR_IN_OUT å˜é‡ä¹Ÿæ— æ³•é€šè¿‡ <FBinstance>.<InOutVariable> æ¥ç›´æŽ¥ä»Žå¤–部读å–或写入。
    注: 请勿å‘功能å—çš„ [size=1em]BOOL 类型 VAR_IN_OUT å‚数分é…ä½ç±»åž‹ç¬¦å·ï¼ˆå¦‚,ä½äºŽæ­¤ç±»ä½ç±»åž‹åœ°å€ä¸Šçš„ %MXaa.b 或 BOOL
    å˜é‡ï¼‰ã€‚如果检测到任何此类赋值,则在消æ¯è§†å›¾ä¸­å°†å…¶æŠ¥å‘Šä¸ºç¼–译错误。
    示例
    [AppleScript] 纯文本查看 å¤åˆ¶ä»£ç 
    VAR_IN_OUT 
    iInOut1:INT; (* 1. Inputoutputvariable *)
    END_VAR
    

    传输å˜é‡ - VAR_IN_OUT CONSTANT
    VAR_IN_OUT CONSTANT å˜é‡ç”¨ä½œå¸¸é‡å¼•ç”¨ä¼ é€’å‚数。STRING 或 WSTRING 类型的å˜é‡æˆ–常é‡ï¼ˆå­—é¢é‡ï¼‰å¯ä»¥è¢«ä¼ é€’到此å‚数。此å‚数是åªè¯»å‚数。ä¸å…许传递属性。
    语法
    VAR_IN_OUT CONSTANT    <variable name> : <data type>; // formal parameterEND_VAR
    VAR_IN_OUT CONSTANT å˜é‡çš„声明ä¸éœ€è¦å¯¹åˆå§‹åŒ–值进行赋值。
    用法
    • 调用 POU 时,å¯ä»¥ä¼ é€’ STRING 或 WSTRING 类型的常数å˜é‡æˆ–å­—é¢é‡ã€‚ä¸å…许执行写访问。
    • 传递为 STRING 常é‡çš„å‚数时,字符串长度ä¸å—é™åˆ¶ã€‚字符串长度ä¸å–决于 VAR_IN_OUT CONSTANT å˜é‡çš„字符串长度。

    注: 如果在属性设置 > 编译选项对è¯æ¡†
    中选择了替æ¢å¸¸é‡é€‰é¡¹ï¼Œé‚£ä¹ˆåœ¨ä¼ é€’基本数æ®ç±»åž‹çš„常é‡å‚数或者基本数æ®ç±»åž‹çš„常数å˜é‡å‚数时,编译器会生æˆé”™è¯¯ã€‚
    æ­¤å˜é‡å— EcoStruxure Machine Expert V2.0 åŠå…¶æ›´é«˜ç‰ˆæœ¬æ”¯æŒã€‚
    示例:传递 STRING 常é‡å‚æ•°å’Œ STRING å˜é‡å‚æ•°
    [AppleScript] 纯文本查看 å¤åˆ¶ä»£ç 
    FUNCTION funManipulate : BOOL
    VAR_IN_OUT    
    sReadWrite : STRING(16); (* Can be read or written here in POU *)    
    dwVarReadWrite : DWORD; (* Can be read or written here in POU *)
    END_VAR
    VAR_IN_OUT CONSTANT    
    c_sReadOnly : STRING(16); (* Constant string variable can only be read here in POU *)
    END_VAR
    sReadWrite := 'String_from_POU';
    dwVarReadWrite := STRING_TO_DWORD(c_sReadOnly);
    PROGRAM PRG_A
    VAR    
    sVarFits : STRING(16);    
    sValFits : STRING(16) :='1234567890123456';    
    dwVar: DWORD;
    END_VAR
    // The following line of code causes the compiler error C0417:
    // C0417: VAR_IN_OUT parameter 'sReadWrite' needs a variable with write access as input.
    funManipulate(sReadWrite:='1234567890123456', c_sReadOnly:='1234567890123456', dwVarReadWrite := dwVar);
    // Correct code
    funManipulate(sReadWrite := sValFits, c_sReadOnly := '23', dwVarReadWrite := dwVar);funManipulate(sReadWrite := sVarFits, c_sReadOnly := sValFits, dwVarReadWrite :=dwVar);

    在代ç ç¤ºä¾‹ä¸­ï¼Œå­—符串通过ä¸åŒçš„ VAR_IN_OUT å˜é‡ä¼ é€’到 funManipulate 函数:
    • 将字符串字é¢é‡ä¼ é€’到 VAR_IN_OUT å˜é‡æ—¶ï¼Œä¼šè§¦å‘编译器错误。
    • 将常数å˜é‡ä¼ é€’到 VAR_IN_OUT CONSTANT å˜é‡æ—¶ï¼Œå¯ç”Ÿæˆæ­£ç¡®çš„代ç ã€‚这甚至适用于传递字符串å˜é‡ã€‚



    全局å˜é‡ - VAR_GLOBAL
    您å¯ä»¥ä½œä¸ºå…¨å±€å˜é‡æ¥å£°æ˜Žåœ¨å·¥ç¨‹ä¸­å·²çŸ¥çš„正常å˜é‡ã€å¸¸é‡ã€å¤–部å˜é‡æˆ–剩余å˜é‡ã€‚è¦å£°æ˜Žå…¨å±€å˜é‡ï¼Œè¯·ä½¿ç”¨å…¨å±€å˜é‡åˆ—表 (GVL)。å¯ä»¥é€šè¿‡æ‰§è¡Œæ·»åŠ å¯¹è±¡å‘½ä»¤ï¼ˆé»˜è®¤æƒ…况下是在工程èœå•ä¸­ï¼‰æ¥æ·»åŠ  GVL。
    请在关键字 VAR_GLOBAL å’Œ END_VAR 之间以本地方å¼å£°æ˜Žå˜é‡ã€‚
    è¯·è€ƒè™‘å‘ VAR_GLOBAL 添加属性的å¯èƒ½æ€§ã€‚
    以å¥ç‚¹å¼€å¤´çš„å˜é‡å°†è¢«è¯†åˆ«ä¸ºå…¨å±€å˜é‡ï¼Œä¾‹å¦‚,.iGlobVar1。
    有关多次使用å˜é‡å称ã€å…¨å±€èŒƒå›´æ“作符 dot (.) 以åŠå‘½å空间的详细信æ¯ï¼Œè¯·å‚阅全局范围æ“作符一章。
    全局å˜é‡åªèƒ½åœ¨å…¨å±€å˜é‡åˆ—表 (GVL) 中声明。GVL 用æ¥ç®¡ç†å·¥ç¨‹ä¸­çš„全局å˜é‡ã€‚å¯ä»¥é€šè¿‡æ‰§è¡Œæ·»åŠ å¯¹è±¡å‘½ä»¤ï¼ˆé»˜è®¤æƒ…况下是在工程èœå•ä¸­ï¼‰æ¥æ·»åŠ  GVL。
    注: 如果在 POU 中以本地方å¼å®šä¹‰çš„æŸä¸ªå˜é‡ä¸ŽæŸä¸ªå…¨å±€å˜é‡åŒå,则该å˜é‡åœ¨ POU 中优先。
    注: 全局å˜é‡æ˜¯åœ¨ POU 的局部å˜é‡ä¹‹å‰è¿›è¡Œåˆå§‹åŒ–。

    临时å˜é‡ - VAR_TEMP
    该功能是对 IEC 61131-3 标准的扩展。
    临时å˜é‡åœ¨æ¯æ¬¡è°ƒç”¨ POU 时都进行(é‡æ–°ï¼‰åˆå§‹åŒ–。VAR_TEMP 声明仅能在程åºå’ŒåŠŸèƒ½å—中使用。这些å˜é‡ä¹Ÿåªèƒ½åœ¨ç¨‹åº POU 或功能å—的主体中访问。
    请在关键字 VAR_TEMP å’Œ END_VAR 之间以本地方å¼å£°æ˜Žå˜é‡ã€‚
    注: 您å¯ä»¥ä½¿ç”¨ VAR_TEMP 代替 VAR,以å‡å°‘ POU 需è¦çš„存储器空间(例如,在åªæ˜¯ä¸´æ—¶ä½¿ç”¨å˜é‡çš„情况下,é™ä½ŽåŠŸèƒ½å—中的存储器空间)。

    é™æ€å˜é‡ - VAR_STAT
    该功能是对 IEC 61131-3 标准的扩展。
    é™æ€å˜é‡å¯ä»¥åœ¨åŠŸèƒ½å—ã€æ–¹æ³•å’Œå‡½æ•°ä¸­ä½¿ç”¨ã€‚请在关键字 VAR_STAT å’Œ END_VAR 之间以本地方å¼å£°æ˜Žé™æ€å˜é‡ã€‚é™æ€å˜é‡æ˜¯åœ¨é¦–次调用å„自 POU 时进行åˆå§‹åŒ–。
    如åŒå…¨å±€å˜é‡ä¸€æ ·ï¼Œé™æ€å˜é‡åœ¨ç”¨äºŽå£°æ˜Žé™æ€å˜é‡çš„ POU 退出之åŽï¼Œä¸ä¼šä¸¢å¤±å…¶å€¼ã€‚é™æ€å˜é‡åœ¨ç”¨äºŽå£°æ˜Žé™æ€å˜é‡çš„ POU 之间共享(例如,多个功能å—实例ã€å‡½æ•°æˆ–方法共享相åŒçš„é™æ€å˜é‡ï¼‰ã€‚例如,é™æ€å˜é‡åœ¨åŠŸèƒ½ä¸­å¯ä»¥ç”¨ä½œå‡½æ•°è°ƒç”¨æ¬¡æ•°çš„计数器。
    è¯·è€ƒè™‘å‘ VAR_STAT 添加属性的å¯èƒ½æ€§ã€‚

    外部å˜é‡ - VAR_EXTERNAL
    外部å˜é‡æ˜¯æŒ‡å¯¼å…¥ POU 的全局å˜é‡ã€‚
    请在关键字 VAR_EXTERNAL å’Œ END_VAR 之间以åŠåœ¨å…¨å±€å˜é‡åˆ—表 (GVL) 中,以本地方å¼å£°æ˜Žå¤–部å˜é‡ã€‚该声明和全局声明必须相åŒã€‚如果全局å˜é‡ä¸å­˜åœ¨ï¼Œåˆ™ä¼šæ˜¾ç¤ºä¸€æ¡æ¶ˆæ¯ã€‚
    注: ä¸éœ€è¦å°†å˜é‡å®šä¹‰ä¸ºå¤–部å˜é‡ã€‚æ供这些关键字是为了ä¿æŒä¸Ž IEC 61131-3 的兼容性。

    示例
    [AppleScript] 纯文本查看 å¤åˆ¶ä»£ç 
    FUNCTION_BLOCK FB_DoSomething 
    VAR_EXTERNAL 
    iVarExt1:INT; (* 1st external variable *)
    END_VAR
    

    实例å˜é‡ - VAR_INST
    如果利用 VAR_INST 属性将方法的å˜é‡å£°æ˜Žä¸ºå®žä¾‹å˜é‡ï¼Œåˆ™æ­¤å˜é‡ä¸ä¼šå­˜å‚¨åœ¨æ–¹æ³•å †æ ˆä¸Šï¼Œè€Œæ˜¯å­˜å‚¨åœ¨åŠŸèƒ½å—实例的堆栈上。因此,它的行为与功能å—实例其他å˜é‡çš„行为相似,并且在方法被调用时,ä¸è¢«åˆå§‹åŒ–。
    VAR_INST å˜é‡ä»…å…许用在方法中。您åªèƒ½åœ¨æ–¹æ³•ä¸­è®¿é—®è¿™æ ·çš„å˜é‡ã€‚属性(如 CONSTã€RETAIN)ä¸å…许用在声明中。å˜é‡çš„值å¯ä»¥åœ¨æ–¹æ³•çš„声明部分中å—到监视。
    示例
    [AppleScript] 纯文本查看 å¤åˆ¶ä»£ç 
    METHOD meth_last : INT
    VAR_INPUT  
    iVar : INT;
    END_VAR
    VAR_INST  
    iLast : INT := 0;
    END_VA
    Rmeth_last := iLast;
    iLast := iVar;
    




    +10
    ä¸èµžä¸€ä¸ªï¼Ÿ
    打èµé¼“励一下ï¼
    您需è¦ç™»å½•åŽæ‰å¯ä»¥å›žå¸– 登录 | ç«‹å³æ³¨å†Œ 新浪微åšç™»é™†

    本版积分规则

    
    顶部qrcode底部
    关注酷德网订阅å·ï¼ŒèŽ·å–更多资讯ï¼

    QQ|å°é»‘屋|手机版|Archiver|é…·å¾·è®ºå› ( è‹ICP备16065247å·-1 )|网站地图

    GMT+8, 2024-11-13 14:22 , Processed in 0.164378 second(s), 54 queries .

    酷德网

    © 2001-2013 Hicodesys. æŠ€æœ¯æ”¯æŒ by 酷德网

    å¿«é€Ÿå›žå¤ è¿”å›žé¡¶éƒ¨ 返回列表