По просьбе наших посетителей, данный материал перенесен с сайта plc4good.org.ua, в связи с полной его потерей. Всё возражения принимаются через форму обратной связи.
plc4good.org.ua/view_post.php?id=271
Блок позволяющий немедленно обновить значения выходных модулей, для всех 16-ти разделов отображения.
Взят из PCS7 Basic library v8.
Функция взята из PCS 7 Basis Library V8.0 (ссылка на библиотеку внизу материала)
Блок PO_UPDAT поддерживает функции выходных модулей ‘Удерживать последнее значение’ и ‘Применить предустановленное значение’
В PCS7, данный блок PO_UPDAT, используется в блоке OB100, после того как CH_DO и CH_AO блоки установят все сигналы в process image и записывает их оттуда в выходные модули.
Кроме этого блок формирует в переменной PO_MAP признаки наличия всех активных областей имиджа процеса из 16 возможных.
Name: FC279
Symbolic Name: PO_UPDAT
Symbol Comment: Update Process Output
Family: @SYSTEM
Version: 7.0
Author: DRIVER80
Last modified: 02/02/2011
Use: SFC27
Size: 256 byte
Signature: generiert vom SCL bersetzer Version: SCLCOMP K05.03.06.00_01.03.00.01 release
{
Scl_ResetOptions ,
Scl_OverwriteBlocks:= ‘y’ ,
Scl_GenerateReferenceData := ‘y’ ,
Scl_S7ServerActive:= ‘y’ ,
Scl_CreateObjectCode:= ‘y’ ,
Scl_OptimizeObjectCode:= ‘y’ ,
Scl_MonitorArrayLimits:= ‘n’ ,
Scl_CreateDebugInfo := ‘n’ ,
Scl_SetOKFlag:= ‘n’ ,
Scl_SetMaximumStringLength:= ‘254’
}FUNCTION FC1279 : VOID
TITLE =‘Update Process Output’
{ S7_hardware :=‘rack’, S7_tasklist := ‘OB100’ }
AUTHOR : DRIVER80
FAMILY : ‘@SYSTEM’
NAME : PO_UPDAT
VERSION : ‘7.0’VAR_OUTPUT
PO_MAP { S7_visible := ‘false’ }: WORD , //Map of Updated Process Outputs
END_VAR
VAR_TEMP
PCOUNT : INT , //Zдhlvariable
RCODE : INT , //Returnwert von SFC UPDAT_PO
HELP : WORD , //Hilfsvariable
PAA : WORD , //Bitfeld der aktualisierten ProzeЯabbilder
END_VAR
BEGINFOR PCOUNT:=0 TO 15 BY 1 DO
RCODE:=UPDAT_PO(PART := INT_TO_BYTE(PCOUNT)
,FLADDR := HELP
),
HELP:=1,
HELP:=SHL(IN:=HELP,N:=PCOUNT),IF INT_TO_WORD(RCODE)=W#16#0 OR INT_TO_WORD(RCODE)=W#16#80A0 THEN
PAA:=PAA OR HELP,
ELSE
PAA:=NOT HELP AND PAA,
END_IF,
END_FOR,
PO_MAP:=PAA,
END_FUNCTION
Block checksum оригинального и восстановленного блока совпадает.
Блок интересен примером использования SFC27.
Оригинальная библиотека PCS7 (BasisLibrary (V8.0) (zip, 1.3Mb) https://disk.yandex.ru/d/jHx335YiOeRMjw
Документация на блок (PCS 7 Basis Library V8.0 Function Manual, 11/2011) (pdf, 2Mb) – https://disk.yandex.ru/i/hS57erMvAkXtYQ
Оцените статью!