PCS7: исходник PO_UPDAT - блок для принудительного обновления выходных модулей
Дата: 2016-02-26
Добавлено: komatic
Тема: Step7
Блок позволящий немедленно обновить значения выходных модулей, для всех 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
BEGIN
FOR
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)
Документация на блок (PCS 7 Basis Library V8.0 Function Manual, 11/2011) (pdf, 2Mb)
Просмотров: 3097
Комментарии к материалу
Ваш будет первым.
Добавить комментарий