데이터 테이블 제어
이 명령은 서로 다른 속도와 목표 값의 임의 수를 사용하여 지정한 DUT의 파라미터에 따라 사각형 제어를 수행합니다. 이 채널의 제어 플래그가 FALSE이고 실행 조건이 TRUE이면 특정 채널에서 펄스가 출력됩니다.
입력
데이터 테이블이 포함된 영역의 시작 어드레스
샘플: F174_PulseOutput_DataTable_8_Values_DUT
펄스 출력 채널:
FP-XH C30 T/P: 0~3
FP-XH C60 T/P: 0~5
FPS: 0,2
FP-X R: 0,1
FP-XC14T: 0,1,2
FP-X C30T/C60T: 0,1,2,3
FP0R: 0,1,2,3
샘플과 같은 다음 DUT를 사용하여 자체 DUT 만들기: F174_PulseOutput_DataTable_8_Values_DUT
DUT에서 F168_PulseOutput_Home_DUT 파라미터를 지정할 수 있습니다.
제어 코드
주파수 1
목표값 1
주파수 2
목표값 2
...
주파수 n
목표값 n
펄스 정지
펄스 출력 특정
x 고속 카운터 경과 값(이동 양)
펄스는 목표 값에 도달할 때까지 특정 주파수에서 출력됩니다. 그런 다음 주파수는 두 번째 주파수 값으로 변경되고 펄스는 두 번째 목표 값에 도달할 때까지 계속 출력됩니다. 이후도 마찬가지입니다.
최종 목표 값에 도달하면 펄스 출력이 정지합니다.
0 주파수는 최종 주파수를 나타내고 펄스 출력을 정지합니다.
FP-X, FP0R: 펄스 출력 명령이 실행되고 펄스가 출력 중이면 해당 채널의 펄스 출력 제어 플래그(예: sys_bIsPulseChannel0Active)는 TRUE입니다. 다른 펄스 출력 명령이 실행되면 이 플래그는 더 이상 TRUE가 아닙니다.
FPS: 고속 카운터 제어 플래그(예: sys_bIsHscChannel0ControlActive)와 펄스 출력 제어 플래그(예: sys_bIsPulseChannel0Active)가 같은 특수 내부 플래그 번호(예: R903A)에 할당됩니다. 따라서 고속 카운터 명령 또는 펄스 출력 명이 실행되면 사용된 채널의 고속 카운터 제어 플래그(예: sys_bIsHscChannel0ControlActive)와 펄스 출력 제어 플래그(예: sys_bIsPulseChannel0Active)는 TRUE입니다. 다른 고속 카운터 명령 또는 펄스 출력 명령이 실행되면 이 플래그는 더 이상 TRUE가 아닙니다.
지정된 최초 주파수 값이 범위를 벗어나면 연산 에러가 발생합니다. (최초 주파수 값이 0이면 펄스가 출력되지 않고 연산이 중지합니다.)
지정된 두 번째 주파수 값이 범위를 벗어나거나 0이면 펄스 출력이 정지합니다.
목표 값이 범위를 벗어나면 펄스 출력 수는 지정된 값과 다를 수 있습니다.
FP0R: 대상 값 중 하나가 이동 방향에 없으면 펄스 출력은 정지합니다.
FPS, FP-X: 대상 값 중 하나가 이동 방향에 없으면 계산은 무한정 계속됩니다.
FPS: 원 보간 제어 명령 F176_PulseOutput_Center를 실행하면 원 보간 제어 플래그(sys_bIsCircularInterpolationActive)가 TRUE로 설정됩니다. 이 플래그 상태는 목표 값에 도달할 때까지 유지됩니다(실행 조건이 TRUE가 아니더라도). 이 시간 동안에는 다른 펄스 출력 명령을 실행할 수 없습니다.
FPS: 펄스 출력 채널에 할당된 모든 고속 카운터를 시스템 레지스터의 "미사용"으로 설정합니다.
FPS, FP-X: 주기적 인터럽트 또는 고속 카운터 인터럽트 프로그램이 실행되고 있거나 PLC 링크 펑션이 동시에 사용되고 있는 경우, 80kHz 이하 주파수를 사용해야 합니다.
FP-X: 시스템 레지스터에서 원하는 채널의 "펄스 출력"을 설정합니다.
프로그램이 RUN 모드에서 편집되면 펄스 출력이 정지하지만 프로그램 변경 후 다시 시작되어 다운로드됩니다.
위치결정 프로그램에 강제 정지 옵션을 통합하는 것이 좋습니다.
고속 카운터 제어 플래그 또는 펄스 출력 제어 플래그 상태는 스캔이 실행 중인 동안에 변경될 수 있습니다. 예를 들어, 수신된 바이트 수를 읽으면 스캔 1회에 다른 상태가 두 개 이상 있을 수 있습니다.
글로벌 변수 리스트에서 프로젝트의 모든 POU에서 액세스할 수 있는 변수를 정의합니다.
DUT F174_PulseOutput_DataTable_8_Values_DUT는 [FP 라이브러리]에서 사전 정의되고 샘플로 사용될 수 있습니다.
이 펑션 프로그램 시 사용한 모든 입력과 출력 변수는 POU 헤더에서 선언되었습니다. 모든 프로그래밍 언어에 같은 POU 헤더를 사용합니다.
VAR_EXTERNAL
X0_bMotorSwitch: BOOL:=FALSE;
(*at X0*)
END_VAR
VAR
dutDataTable4: F174_DUT:=ControlCode := 16#1200,
Frequency1 := 1000,
TargetValue1 := 1000,
Frequency2 := 2500,
TargetValue2 := 2000,
Frequency3 := 5000,
TargetValue3 := 5000,
Frequency4 := 1000,
TargetValue4 := 2000,
Termination := 0;
(*Control code:
Digit 3: 1=Duty ratio 25%
Digit 2: 2=Frequency range 48Hz-100kHz
Digit 1: 0=Relative value control
Digit 0: 0=CW*)
@'': @'';
END_VAR
BODY
WORKSPACE
NETWORK_LIST_TYPE := NWTYPELD ;
ACTIVE_NETWORK := 0 ;
END_WORKSPACE
NET_WORK
NETWORK_TYPE := NWTYPELD ;
NETWORK_LABEL := ;
NETWORK_TITLE := ;
NETWORK_HEIGHT := 6 ;
NETWORK_BODY
B(B_F,F174_PulseOutput_DataTable!,Instance,13,0,27,5,,?DEN?Ds_dutDataTable?Hn_iPulseOutputChannel?AENO);
B(B_VARIN,,dutDataTable4,11,2,13,4,);
B(B_VARIN,,0,11,3,13,5,);
B(B_CONTACT,,X0_bMotorSwitch,5,1,7,3,R);
L(1,2,5,2);
L(7,2,13,2);
L(1,0,1,6);
END_NETWORK_BODY
END_NET_WORK
END_BODY
IF DF(X0_bMotorSwitch) then
F174_PulseOutput_DataTable(s_dutDataTable := dutDataTable4, 4);
END_IF;