¿Los FC y FB del S7-300 los escriben los usuarios?
En S7-300/400PLC, el programa principal se escribe en el módulo y programa OB1, y la función (FC) y el bloque de funciones (FB) se escriben en la subrutina.
La operación FC genera variables temporales y los datos se perderán una vez completada la ejecución. ----- no tiene función de almacenamiento
Es necesario llamar a varios parámetros cuando FB se está ejecutando, por lo que el bloque de datos en segundo plano para DB. Por ejemplo, cuando se utiliza FB41 para control PID, es necesario almacenar los parámetros de control PID en la base de datos. FB tiene función de almacenamiento
Bloques de funciones del sistema (SFB y SFC también son equivalentes a subrutinas, excepto que SFB y SFC son bloques de funciones integrados en la CPU S7 y los usuarios pueden llamarlos directamente sin escribir un programa.< / p>
SFC y FC no tienen funciones de almacenamiento, mientras que FB y SFB tienen funciones de almacenamiento
El módulo OB es equivalente a una subrutina y es responsable de llamar a otros módulos si el programa lo es. relativamente simple, solo necesita implementar módulos OB.
Al programar con PLC Siemens, puede usar bloques de funciones FB y FC (FB y FC son bloques de organización). FC se puede utilizar como subprogramas escritos por el usuario, pero no entiendo la diferencia entre estos dos bloques de organización.
FB - bloque de funciones con bloque de datos de fondo
FC--. function?, equivalente a una función
La principal diferencia entre ellos es que FC usa el bloque de datos compartido, mientras que FB usa el bloque de datos de fondo
Por ejemplo, si quieres controlar Solo es necesario programar 3 motores con los mismos parámetros con FB. Agregar 3 FB puede garantizar que los parámetros de los 3 motores no interfieran entre sí.
FB y FC son esencialmente los mismos y son. equivalente para los subprogramas, otros programas pueden llamarlo (también pueden llamar a otros subprogramas). La mayor diferencia es que FB y DB trabajan juntos, DB guarda los datos utilizados por FB, incluso después de que FB sale y fc no tiene datos permanentes. bloque para guardar datos, solo asigna un área de datos temporal durante la operación
Si se utiliza FB o FC en la programación real depende de las necesidades reales.
La diferencia entre FB y FC. No, FB tiene un bloque de datos de fondo, pero FC no. Por lo tanto, los FB con diferentes bloques de datos pueden aceptar diferentes valores de parámetros. De esta manera, varios objetos con el mismo FB y diferentes bloques de datos de fondo pueden llamarlo.
FC y FB son similares a las funciones en lenguaje C. La diferencia es que las variables estáticas generadas por FB se pueden retener durante la siguiente llamada a la función, mientras que las variables de FC solo son válidas durante la llamada y se usarán la siguiente. vez que se llama.
Este es un entendimiento general; FB requiere el bloque de datos de fondo, pero la forma de pasar parámetros es diferente, la entrada y salida de FB corresponden a la dirección. del bloque de datos de fondo, y la entrada y salida de FC No es la correspondencia con la dirección real, solo la correspondencia con la dirección real cuando se llama al programa. El parámetro FB pasa los datos y el parámetro FC pasa la dirección. de los datos.
FB (bloque de funciones) se ocupa del área circundante. Los datos procesados por el bloque de datos, sus parámetros de entrada y salida son todos datos en el bloque de datos, y los datos STAT también son datos. en el bloque de datos, los parámetros de entrada, los parámetros de salida y STAT se pueden considerar como datos estáticos, y estos datos no se perderán debido a la desaparición de la función y no se perderán debido a la muerte de la función. Siempre se guardará en el bloque de datos.
Las variables en FB tienen una correspondencia uno a uno con su bloque de datos de fondo y su correspondencia no es constante. En cambio, las etiquetas en el FB se llaman como compensaciones del bloque de datos de instancia según el valor de AR2. Si el bloque de funciones FB no tiene parámetros de entrada, parámetros de salida ni datos STAT, no hay necesidad de un bloque de datos en segundo plano. Entonces no hay diferencia entre FB y FC sin parámetros de entrada y salida, y solo se pueden usar variables temporales y variables globales. usado. Mucha gente cree que el bloque de datos de fondo de FB debe ser generado por FB. La primera variable en FB corresponde a la primera variable en el bloque de datos de fondo. El bloque de datos generado por FB solo se puede utilizar como bloque de datos de fondo de FB. De hecho, esta comprensión es incorrecta. El bloque de datos de fondo de FB no tiene por qué ser generado por FB. El bloque de datos de fondo de FB se puede generar de la misma manera que el bloque de datos compartido. Se utiliza como bloque de datos de fondo del FB, pero este método tiene ciertas condiciones previas, es decir, el número de bytes de este bloque debe ser mayor o igual que el número de bytes requeridos por el FB. número de bytes requeridos por FB, entonces FB solo puede acceder al bloque backend de FB. Si el número de bytes es menor que el número de bytes requeridos por el FB, cuando el FB acceda a variables fuera del bloque de datos de fondo, no podrá encontrar la dirección de la variable y definitivamente se producirá un error. La variable correspondiente a la primera variable en el FB puede corresponder a cualquier posición después del número de bytes del bloque de datos de fondo menos el número de bytes requeridos por el FB. Creo que esto es más fácil de entender en múltiples fondos, ¿verdad? Tengo que decir algo más aquí. Parece que en este caso, FB no puede tener múltiples fondos en S7. Dicho esto, inmediatamente hice una prueba en S7. Mi idea es incorrecta, se pueden anidar varios fondos. Más cerca de casa, también se puede acceder a los bloques de datos generados por FB disfrutando de los bloques de datos como si se accediera a bloques de datos normales. Si no lo cree, puede probarlo usted mismo. Después de hablar sobre cómo usar bloques de datos ordinarios como bloques de datos de fondo de FB, algunas personas comenzarán a intentarlo ellos mismos. ¿Por qué no funciona? Tan pronto como se llama al programa, el programa se pone rojo y hay errores. Déjame decirte que usar la instrucción CALL para escribir SETP7 verificará automáticamente la relación entre el bloque DB y el FB. Si la marca de tiempo y el tamaño son inconsistentes, se informará un error. Aquí, podemos usar la instrucción UC para llamar a FB. La instrucción UC no pasa parámetros (no estoy de acuerdo con esta afirmación, lo discutiré en la sección Cómo pasar parámetros cuando se usa UC para llamar a FC), entonces, ¿cómo? ¿Pasamos parámetros a FB? ¿Cómo leemos la salida de FB?