본문 바로가기
PLC 전기제어 기술자료/샘플 프로그램 & TIP

[GOT] 스크립트를 활용한 I/O 모니터링 화면 샘플

by 위치결정 2024. 1. 26.
반응형

I/O 체크를 위한 모니터링 화면을 위해 베이스화면을 국별로 그리지 않으셨나요?

베이스화면에 윈도우를 중첩해서 그리셨나요?

 

그러면 이제 그렇게 하지 않으셔도 됩니다.

스크립트를 활용하여 베이스 스크린 한화면에서 오프셋 기능을 구현하여 램프와 텍스트를 띄울수 있으니까요.

 

아래 스크립트와 작화 파일 샘플을 공유드리니 참조해서 아이오 화면 그릴때의 그 노가다, 줄여보시길 바랍니다.

 

 

// Data Type : Bin / 16bit / Signed

// [w:GD1000] : IO Module No.
// [w:GD1001] : IO Station No.

// [w:GD1010] : Input(X) Display Lamp Bit
// [w:GD1012] : Output(Y) Display Lamp Bit
// [w:GD1014] : Display Lamp Bit

// [w:GD1020] : IO Text File No.
// [w:GD1021]~[w:GD1052] : IO Text Row No.



// Module Initial Limit Setting 
if([w:GD1000] < 1)
{
	[w:GD1000] = 1;
}

if([w:GD1000] > 64)
{
	[w:GD1000] = 64;
}



// Station Initial Limit Setting
if([w:GD1001] < 1)
{
	[w:GD1001] = 1;
}
if([w:GD1001] > 64)
{
	[w:GD1001] = 64;
}


// 1. IO Lamp Display
[w:TMP0] = ([w:GD1001] - 1) * 2;

if([w:GD1000] == 1) // Module No.1
{
	[w:GD1020] = 101; // set Text Group No.

	[s32:GD1010] = [s32:X0000 [w:TMP0]]; // Input
	[s32:GD1012] = [s32:Y0000 [w:TMP0]]; // Output
}

if([w:GD1000] == 2) // Module No.2
{
	[w:GD1020] = 102; // set Text Group No.

	[s32:GD1010] = [s32:X1000 [w:TMP0]]; // Input
	[s32:GD1012] = [s32:Y1000 [w:TMP0]]; // Output
}

if([w:GD1010] != 0 || [w:GD1012] != 0) // Input-1 or Output-1 is On
{
	if([w:GD1010] != 0) 
	{
		[w:GD1014] = [w:GD1010]; // Input-1 Display
	}
	
	if([w:GD1012] != 0) 
	{
		[w:GD1014] = [w:GD1012]; // Output-1 Display
	}
}
else
{
	[w:GD1014] = 0;
}

if([w:GD1011] != 0 || [w:GD1013] != 0) // Input-2 or Output-2 is On
{
	if([w:GD1011] != 0) 
	{
		[w:GD1015] = [w:GD1011]; // Input-2 Display
	}
	
	if([w:GD1013] != 0) 
	{
		[w:GD1015] = [w:GD1013]; // Output-2 Display
	}
}
else
{
	[w:GD1015] = 0;
}


// 2. IO Text Display
[w:GD1019] = ([w:GD1001] - 1) * 32;

[w:TMP2] = 0;
[w:TMP3] = 1;
while([w:TMP2] < 32)
{
	[w:GD1021 [w:TMP2]] = [w:GD1019] + [w:TMP3];
	
	[w:TMP2] = [w:TMP2] + 1;
	[w:TMP3] = [w:TMP3] + 1;
}

 

< 활용방법 >

1. I/O 테이블용 텍스트파일 작성

I/O 모니터링 화면에 표현살 I/O 입출력 어드레스와 코멘트용 텍스트를 작성합니다.

 

2. 생성한 텍스트파일 번호와 I/O 선두아이오를 스크립트에서 상수값 수정

 

예시 )

1번 모듈은 텍스트파일 101번부터, 선두 입력 X0000, 선두 출력 Y0000 의 아이오를 표시

2번 모듈은 텍스트파일 102번부터 사용하여, 선두 입력 X1000, 선두 출력Y1000 의 아이오를 표시 

 

 

3. 동작확인

 

※ 한계점 : 입력과 출력을 한 램프에 표현하는 동작상 입출력 같은 어드레스이 동시에 살았을 경우에는 출력을 우선 표시합니다.

(eg. X0과 Y0 이 동시에 살았을 경우 램프는 Y0 을 표시합니다) 

 

IO Table Offset_240125.GTX
0.11MB

 

안녕. 하나하나 다 그리고 있던 내 과거여

반응형

댓글