zoukankan      html  css  js  c++  java
  • 西门子1200/1500 PLC FC/FB块的区别

     本质上FB块会建立三块静态存储区,输入,输出和Static. 实际上这三块都算Static.区别在于.如果你连接了输入变量.那么,在运行FB前

    会将FB输入链接的值传入输入Static区.然后在运行完了之后,将输出Static区域的值传给输出链接的值.所以,

    对于FB块,有以下几个特点:

                     1,输入区域可以链接也可以不链接变量.如果输入区域没有链接变量,那么可以在程序中更改该变量的值.

    image

    比如,对于in_UID,其是一个string类型的输入变量,可以在程序外更改该值. 

                     2,输出区域可以链接也可以不链接变量,如果输出区域链接了变量,那么该链接变量的值不可更改,因为当FB块运行后

    该值被刷新了 相当于  Data.Done:=FB_ReadUID_DB.Done,会在每次FB块执行后,执行,所以,值被刷新了.

    (很多同学,想在FB块外更改输出链接的值,有两个办法,1,将类型改为INOUT类型,或者,直接更改FB_ReadUID_DB.Done的值.)前提是,FB_ReadUID.Done在程序中没有赋值操作.比如被Jmp了,被 if false ...end_if; 包裹了,等等.

                     3,对于InOut类型,实际也是建立了一个Static变量,但是,其会在输入时读取,在输出时写入.所以,其值可以在程序外被更改


    2,对于FC块,

    image

    1,FC块的所有输入,输出,INOUT 必须链接变量.

    2,FC块的输出值是可以在程序外更改的,(和FB不同).

  • 相关阅读:
    LeetCode 264. Ugly Number II
    LeetCode 231. Power of Two
    LeetCode 263. Ugly Number
    LeetCode 136. Single Number
    LeetCode 69. Sqrt(x)
    LeetCode 66. Plus One
    LeetCode 70. Climbing Stairs
    LeetCode 628. Maximum Product of Three Numbers
    Leetcode 13. Roman to Integer
    大二暑假周进度报告03
  • 原文地址:https://www.cnblogs.com/frogkiller/p/14228346.html
Copyright © 2011-2022 走看看