L?ungen zu den ?ungen

Size: px
Start display at page:

Download "L?ungen zu den ?ungen"

Transcription

1 연습해답 SIMATIC S7 Siemens AG All rights reserved. Date: 10/18/99 File: PRO2_14e.1 Information and Knowledge for Automation 목차 패이지 교재구성... 2 S7-300 실제프로그램가능논리제어기 S7-400 실제프로그램가능논리제어기 시뮬레이터구성... 5 컨베이어모델구성... 6 Solution to 연습 1.1 해답 : 뺄셈연산후점프... 7 Solution to 연습 1.2 해답 : 곱셈연산후점프 연습 1.3 해답 : 라벨로점프... 9 연습 2.1 해답 : 지수계산 연습 2.2 해답 : ACCU1에서의데이터교환 연습 2.3 해답 : 1의보수만들기 연습 3.1 해답 : 거리계산 연습 4.1 해답 : 메모리간접어드레스지정을이용한루프프로그래밍 연습 4.2 해답 : 레지스터간접어드레스지정을이용한루프프로그래밍 연습 4.3 해답 : 합계와평균값계산 연습 5.1 해답 : SFC1을이용한시스템클럭읽기 (READ_CLK) 연습 6.1 해답 : 작업장용 FB1 만들기 연습 6.2 해답 : 전송용 FB2 만들기 연습 6.3 해답 : FB10 만들기 연습 6.4 해답 : 고유카운터블록만들기 연습 7.2 해답 : 데이터블록검사 (SFC 24: S7 400 전용 ) 연습 7.3 해답 : DB 만들기 (SFC 22) 연습 7.4 해답 : 로드메모리에서작업메모리로 DB 복사 (SFC 20) 연습 7.5 해답 : 0 으로 DB 초기화 (SFC 21: FILL) 연습 7.6 해답 : 진단버퍼에메시지기록 (SFC 52) 연습 8.1 해답 : FC43에서의오류처리 연습 9.2 해답 : 완성된부품개수세기 연습 10.1해답 : SFB의 START/STOP을이용한통신 연습 10.2 해답 : SFB의 GET/PUT을이용한통신 Page 1

2 교재구성 후부에있는전원연결부와온 / 오프스위치 PCU 상에서의 MPI 연결 SIMATIC S7 Siemens AG All rights reserved. Date: 10/18/99 File: PRO2_14e.2 Information and Knowledge for Automation 교재내용물교재는다음요소들로구성됩니다 : - CPU 314 를장착한 S7-300 PLC 시스템 - 디지털입력및출력모듈, 아날로그모듈 - 디지털및아날로그부품으로된시뮬레이터 - 컨베이어모델 참고이교재는 S7-400 PLC 시스템에서도사용할수있습니다. Page 2

3 S7-300 실제프로그램가능한논리제어기 슬롯번호 : 버전 A (16 채널모듈 ) 블록유형 : PS CPU DI DI DQ DQ DI DQ 4AI/4AQ 입 / 출력어드레스 : 버전 B (32 채널모듈 ) 블록유형 : PS CPU DI DQ 8DI 2AI /8DQ 입 / 출력어드레스 : SIMATIC S7 Siemens AG All rights reserved. Date: 10/18/99 File: PRO2_14e.3 Information and Knowledge for Automation 구성교육모델은다음모듈로구성됩니다 : 버전 A 슬롯 1: 전원공급장치 24V/5A 슬롯 2: CPU 314 슬롯 4: 디지털입력 16x24V 시뮬레이터스위치 슬롯 5: 디지털입력 16x24V 작은휠스위치 슬롯 6: 디지털출력 16x24V 0.5A 시뮬레이터의출력 LED 슬롯 7: 디지털출력 16x24V 0.5A 디지털디스플레이 슬롯 8: 디지털입력 16x24V 컨베이어모델입력 슬롯 9: 디지털출력 16x24V 0.5A 컨베이어모델출력 슬롯 10: 아날로그모듈 4 AI/4 AO 시뮬레이터에서조정가능 버전 B 슬롯 1: 전원공급장치 24V/5A 슬롯 2: CPU 314 슬롯 4: 디지털입력 32x24V 시뮬레이터스위치와작은휠스위치 Slot 5: 디지털출력 32x24V/0,5A 시뮬레이터의출력 LED와디지털디스플레이 Slot 6: 디지털모듈 8X24V/ 컨베이어모델 8x24V 0.5A Slot 7: 아날로그입력 시뮬레이터에서조정가능 어드레스 S7-300(CPU ) 은고정슬롯어드레스지정방법을사용합니다. 따라서, Y 슬라이드에서모듈의어드레스를볼수있습니다. CPU 와 S7-400 을사용하는경우모듈의시작어드레스를매개변수로지정할수있습니다. Page 3

4 643-1QA11-0AX V QA11-0AX QA11-0AX ATB 386SX INTFDI32xDC24V EXTF 421-1BL0 0-0A RUN CRST STOP RUN STOP S7-400 실제프로그램가능논리제어기 슬롯번호 : IN TF X 3 BAT T1F BAT T2F BAF INTF EXTF DC 5V DC 24 V FRCE CRST 0 FMR 1 0 RUN STOP CRST WRST RUN-P RUN STOP CMRES BA T IND OFF O 블록유형 : PS CPU DI DI DQ DQ AI 기본입 / 출력어드레스 : SIMATIC S7 Siemens AG All rights reserved. Date: 10/18/99 File: PRO2_14e.4 Information and Knowledge for Automation 구성 이제어기는다음모듈로구성됩니다 : 슬롯 1,2, 3: 전원공급장치 220V/20A 슬롯 4: CPU 412, 414 또는 CPU 416 슬롯 5, 6, 7: 비어있음 (M7에서만사용됨 ) 슬롯 8: 디지털입력 32x24V 시뮬레이터의입력 슬롯 9: 디지털입력 32x24V 컨베이어모델의입력 슬롯 10: 디지털출력 32x24V 0.5A 시뮬레이터로전송되는출력 슬롯 11: 디지털출력 16x24V 0.5A 컨베이어모델로전송되는출력 슬롯 12: 아날로그입력모듈 8AI 시뮬레이터에서어드레스지정가능 어드레스 S7-400 의경우위의기본어드레스는기본어드레싱, 즉 CPU 에있는모듈에대한파라미터데이터 (SDB) 가로드되지않았을때만유효합니다. S7-400 의중앙랙에있는모듈의기본어드레스는다음공식에따라계산합니다. 디지털모듈 : ( 슬롯번호 -1) x 4 아날로그모듈 : ( 슬롯번호 - 1) x 모듈의초기어드레스는 S7400 시스템의 CPU 에맞춰자유롭게파라미터로지정할수있습니다. Page 4

5 시뮬레이터구성 DI DO V -15V...+15V AI2 AO1-15V...+15V AI1 AO2 AI1 AI2 V AI1 AI2 AO1 AO2 SIMATIC S7 Siemens AG All rights reserved. Date: 10/18/99 File: PRO2_14e.5 Information and Knowledge for Automation 구성 어드레스 시뮬레이터는두개의커넥터케이블을통해 S7-300 또는 S7-400 교육장치에연결됩니다. 시뮬레이터는세개의부품으로구성됩니다 : 16 개의스위치 / 푸시버튼이장착된이진부품과 4 곳의작은휠스위치및디지털디스플레이가장착된디지털부품. 제어는 BCD 값을통해발생합니다. 아날로그채널 0 과 1 또는아날로그출력 0 과 1 을표시하는전압계가장착된또하나의부품. 감시할전압값을선택스위치로선택할수있습니다. 아날로그입력을조정하는두개의분리된포텐셔미터도있습니다. 사용자프로그램에서다음과같은어드레스로 S7-300/400 용입력과출력의주소를지정합니다. 센서 / 작동기 S7-300 A S7-300 B S7-400 스위치 / 푸시버튼 IW 0 IW 0 IW 2 8 L E D s Q W 8 Q W 4 Q W 3 6 작은휠스위치 IW 4 IW 2 IW 3 0 디지털디스플레이 Q W 1 2 Q W 6 Q W 3 8 아날로그채널 PIW 352/354 PIW 304/306 PIW 1216/1218 Page 5

6 컨베이어모델구성 INI 1 ~ INI 3 인접스위치 LS 1 광전자개찰구 M 1 모터 H 1, H 2, H 3 LED S 1, S 2, S 3, S 4 인식스위치 SIMATIC S7 Siemens AG All rights reserved. Date: 10/18/99 File: PRO2_14e.6 Information and Knowledge for Automation 구성위의슬라이드는센서와작동기로구성된컨베이어모델의구성도입니다. S7-400 의경우어드레스는기본어드레스를사용하는 S7-400 모델의어드레싱을말합니다. 이들설정에대한변경사항은 HW Config 를통해입력이나출력모듈의어드레스를변경할때나타납니다. 모듈어드레스에대한변경사항의경우컨베이어모델의입력신호는두번째입력모듈 ( 슬롯 9) 상에서의입력이며컨베이어모델로전달되는출력신호는두번째출력모듈 ( 슬롯 11) 의출력입니다. 각경우에있어시뮬레이터의신호는첫번째입력과첫번째출력모듈에연결됩니다.. 어드레스 S7-300 A S7-300 B S 센서 / 작동기신호 I 16.0 I 8.0 I 32.0 광개찰구 LS 1 LS1 I 16.1 I 8.1 I 32.1 Ackn. 스위치위치 1 S1 I 16.2 I 8.2 I 32.2 Ackn. 스위치위치 2 S2 I 16.3 I 8.3 I 32.3 Ackn. 스위치위치 3 S3 I 16.4 I 8.4 I 32.4 Ackn. 스위치위치 4( 마지막 ) S4 I 16.5 I 8.5 I 32.5 기폭장치 1 INI1 I 16.6 I 8.6 I 32.6 기폭장치 2 INI2 I 16.7 I 8.7 I 32.7 기폭장치 3 INI3 Q 20.1 Q 8.1 Q 40.1 LED 위치 1 H1 Q 20.2 Q 8.2 Q 40.2 LED 위치 2 H2 Q 20.3 Q 8.3 Q 40.3 LED 위치 3 H3 Q 20.4 Q 8.4 Q 40.4 LED 위치 4 ( 마지막 ) H4 Q 20.5 Q 8.5 Q 40.5 컨베이어드라이브 ( 오른쪽 ) K1_LAUF Q20.6 Q 8.6 Q 40.6 컨베이어드라이브 ( 왼쪽 ) K2_LAUF Q 20.7 Q 8.7 Q 40.7 호른 ( 나팔 ) TUT1 Page 6

7 연습 1.1 해답 : FUNCTION FC 11 : VOID 연습 1.1 : 빼기연산후점프 //16Bit-SM 의버전 AUTHOR : PT41 FAMILY : A4_0 NAME : ST7PRO2 VERSION : 0.0 L IW 4; // 작은휠스위치 BTD ; //BCD를정수로포맷변환 L IW 0; // 입력워드 0 BTD; -D; JN NEG; // 결과가음수인경우점프 L IW 0; JU END; NEG: L 0; END: T QW 12; //7-세그먼트디스플레이 END_FUNCTION Page 7

8 연습 1.2 해답 : FUNCTION FC 12 : VOID 연습 1.2 : 곱하기연산후점프 //16Bit-SM 버전 AUTHOR : PT41 FAMILY : A4_0 NAME : ST7PRO2 VERSION : 0.0 L IW 4; // 썸휠스위치 BTD; //BCD에서정수로변환 L IW 0; // 시뮬레이터의토글스위치 BTD; *I; JO OVL; // 과잉이면점프 DTB; // 정수에서 BCD로변환 JU END; OVL: L 0; END: T QW 12; //7-세그먼트디스플레이 END_FUNCTION Page 8

9 연습 1.3 해답 : OB1 FUNCTION FC 13: VOID VAR_INPUT Select: INT; L #Select; OW W#16#FF00; // 255보다큰지또는 JCN Err; // 음수인지확인 JL GT5; // Accu1-L-L이 5보다크면대상으로점프 JU Err; // select = 0 ( 여기서는일어나지않음 ) JU Dr_1; // 오른쪽컨베이어 (select=1) JU Dr_2; // 왼쪽컨베이어 (select=2) JU Dr_3; // 컨베이어오프 (select=3) JU Ho_1; // 경적 (Horn) 온 JU Ho_2; // 경적오프 GT5: JU Err; Dr_1: S Q 4.5; // 오른쪽컨베이어 R Q 4.6; JU End; Dr_2: S Q 4.6; // 왼쪽컨베이어 R Q 4.5; JU End; Dr_3: R Q 4.5; // 컨베이어오프 R Q 4.6; JU End; Ho_1: S Q 4.7; // 경적 (Horn) 온 JU End; Ho_2: R Q 4.7; // 경적오프 JU End; Err: CLR; SAVE; End: BE; END_FUNCTION Page 9

10 연습 2.1 해답 : FUNCTION FC 21 : VOID 연습 2.1: AKKU 교환함수 // 연습 2.6: ACCU 교환함수 //16Bit-SM 용버전 AUTHOR : PT41 FAMILY : A4_0 NAME : ST7PRO2 VERSION : 0.0 L IB 4; //BCD 번호로드 BTI; //BCD를정수로변환 -> 입력값 PUSH; //ACCU1을 ACCU2에복사 *D; //ACCU1에 InVal의제곱값만들기 PUSH; //ACCU1에서 ACCU2로 InVal의제곱값복사 PUSH; //S7-400에필요함: 제곱값 -> ACCU3 *D; //ACCU1에최대4번째까지 InVal 만들기 *D; //ACCU1에최대6번째까지 InVal 만들기 DTB; // 가능할경우 BCD로변환 ( 선택사항 ) T QW 12; //7_ 세그먼트디스플레이 //LOW-Word 디스플레이 ( 선택사항 ) END_FUNCTION Page 10

11 연습 2.2 해답 : FUNCTION FC 22 : VOID 연습 2.2: ACCU1 에서의데이터교환 // 연습 2.2: ACCU1 에서의데이터교환 //16Bit-SM 용버전 AUTHOR : PT41 FAMILY : A4_0 NAME : ST7PRO2 VERSION : 0.0 L IW 4; //BCD 코드로된썸휠스위치 CAW; //ACCU1-L에서 2 바이트교환 T QW 12; // 결과표시 END_FUNCTION Page 11

12 연습 2.3 해답 : FUNCTION FC 23 : VOID 연습 1.6: 1 의보수만들기 // 연습 2.3: 보수만들기 //16Bit-SM 용버전 AUTHOR : PT41 FAMILY : A4_0 NAME : ST7PRO2 VERSION : 0.0 STL 의 1 의보수 L IW 0; // 입력워드 BCD 코드로드 INVI; //1의보수만들기 T QW 0; // 출력워드로결과표시 END_FUNCTION Page 12

13 연습 3.1 해답 : FUNCTION FC 31 : REAL 연습 3.1: 거리계산 // 연습 3.1: 산술함수 AUTHOR : PT41 FAMILY : A4_0 NAME : ST7PRO2 VERSION : 0.0 VAR_INPUT X1: REAL; Y1: REAL; X2: REAL; Y2: REAL ; VAR_TEMP XSquare : REAL; L X1; // P1의 X 좌표로드 L X2; // P2의 X 좌표로드 -R; // (X1-X2) 만들기 SQR; // (X1-X2) 의제곱값만들기 T XSquare; // TEMP-Var 안에임시저장 L Y1; // P1의 Y 좌표로드 L Y2; // P2의 Y 좌표로드 -R; // (Y1-Y2) 만들기 SQR; // ACCU1에 (Y1-Y2) 의제곱값만들기 L XSquare; // (X1-X2) 에서제곱값불러오기 +R; // 합계계산 SQRT; // 제곱근 ( 최종결과값 ) 만들기 T RET_VAL; // 결과값반환 END_FUNCTION Page 13

14 연습 4.1 해답 : 간접어드레싱을이용한루프프로그래밍 FUNCTION FC 41 : VOID 연습 4.1: 메모리간접어드레싱을이용한루프프로그래밍 // 연습 4.1: 메모리간접어드레싱을이용한루프프로그래밍 VAR_TEMP Tank : ARRAY [ ] OF INT ; Counter : INT ; Ini_Value : INT ; Pointer : DWORD ; 루프프로그래밍 L P#0.0; // tank의첫번째구성요소의어드레스를로드하고 T #Pointer; // 포인트로전송 L 1; // 1을로드하고 T #Ini_Value; // Ini_Value로전송 L 100; // 100으로루프카운터를미리설정하고 BEGN: T #Counter; // 카운트에로드 L #Ini_Value; T LW [#Pointer]; // Ini_Value를 Tank[i] 로전송 L 1; // ACCU1 (Ini_Value) 을 1만큼 +I ; // 증가시키고 T #Ini_Value; // Ini_Value로전송 L #Pointer; // 포인터를 Accu1으로전송 L P#2.0; // Pointer의바이트어드레스를 2만큼증가시키고 +D ; // 포인터에 T #Pointer; // 로드 L #Counter; // 루프카운터로드 LOOP BEGN; // 값을감소시키고필요하다면점프 로컬데이터 (Local Data) 의상태표시를위한네트워크 L #Tank[1]; // 테스트전용 L #Tank[2]; L #Tank[3]; // " L #Tank[4]; L #Tank[5]; L #Tank[6]; L #Tank[7]; L #Tank[8]; L #Tank[9]; L #Tank[10]; L #Tank[64]; L #Tank[100]; END_FUNCTION Page 14

15 연습 4.2 해답 : 레지스터간접어드레싱을이용한루프프로그래밍 FUNCTION FC 42 : VOID 연습 4.2: 레지스터간접어드레싱을이용한루프프로그래밍 // 연습 4.2: 레지스터간접어드레싱을이용한루프프로그래밍 VAR_TEMP Tank : ARRAY [ ] OF INT ; Loop counter : INT ; Ini_Value : INT ; 루프프로그래밍 LAR1 P#0.0; // AR1에첫번째구성요소의어드레스로드 L 1; // 1을 Accu1 (Ini_W.) 에 L 100; // 100을 Accu1 (loopc.) 에 ; 1을 Accu2 (Ini_Value) 에 BEGN: TAK ; // Accu2에루프카운터, Accu1에 Ini_V. T LW [AR1,P#0.0]; // Ini_Value를 Tank[i] 로전송 INC 1; // Ini_Value을증가시킴 +AR1 P#2.0; // AR1을 2 바이트만큼증가시킴 TAK ; // Accu1에루프카운터, Accu2에 Ini_V. LOOP BEGN; // 루프카운터를감소시키고필요하다면점프 로컬데이터 (Local Data) 의상태표시를위한네트워크 L #Tank[1]; L #Tank[2]; L #Tank[3]; L #Tank[4]; L #Tank[5]; L #Tank[6]; L #Tank[7]; L #Tank[8]; L #Tank[9]; L #Tank[10]; L #Tank[64]; L #Tank[100]; END_FUNCTION Page 15

16 연습 4.3 해답 : 합계및평균값계산함수 FUNCTION FC 43 : VOID 연습 4.3: 합계및평균값계산함수 // 연습 4.3: 합계와평균값계산함수 VAR_INPUT Measured_values : ANY ; VAR_OUTPUT Sum : REAL ; Mean_value : REAL ; VAR_TEMP Loop_counter : WORD ; DB_No : WORD ; L P##Meas_values; // ANY 포인터의영역포인터로드 LAR1 ; // AR1에있는영역포인터 L B [AR1,P#1.0]; // 데이터형식별자읽기 L 8; // 식별자 REAL(16#08) 로드 ==I ; JC REAL; // 데이터형이 REAL이면점프 NOP 0; // REAL이아닌데이터형을위한인스트럭션 CLR ; // RLO=0 SAVE ; // BR =0 L L#-1; // 잘못된 REAL 숫자로드 T #Sum; T #Mean_value; BEU ; REAL: NOP 0; // REAL 데이터형을위한인스트럭션 L W [AR1,P#2.0]; // 배열요소의개수로드 T #Loop_counter; // 루프카운터초기화 L W [AR1,P#4.0]; // DB 번호또는 0 로드 T #DB_No; // DB_No= 가 0이면 OPN DB[DB_No]=NOP OPN DB [#DB_No]; // DB가존재하지않는경우런타임오류!! L D [AR1,P#6.0]; // AR1에실질어드레스의영역포인터로드 LAR1 ; // 영역식별자가 "DI" 이면오류 L e+000; // 0을 Accu1 (Sum =0.0) 에 L #Loop_counter; // 카운터를 ACCU1에, Sum=0을 ACCU2에 BEGN: TAK ; // ACCU2에 Loopc, ACCU1에합계 ENT ; // ACCU3에 Loopc, ACCU2에합계 L D [AR1,P#0.0]; // ACCU1에배열요소 +R ; // ACCU1에합계, ACCU2에 Loopc +AR1 P#4.0; // 4 바이트만큼 AR1을증가시킴 TAK ; // ACCY1에 Loopc, ACCU2에 Sum LOOP BEGN; // loopc를감소시키고필요하면점프 TAK ; // ACCU1에 Sum T #Sum; // 합계를 #Sum에 L #Loop_counter; // ACCU2에합계, ACCU1에개수 DTR ; // 부호가정의되지않은정수 (16비트) 를 REAL로 /R ; // ACCU1에평균값 T #Mean_value; // 평균값을 #Mean value에 SET ; // BR-Bit를 1로설정 SAVE ; END_FUNCTION Page 16

17 연습 5.1 해답 : SFC 1 를이용한시스템클럭읽기 (READ_CLK) FUNCTION FC 51 : VOID 연습 5.1: SFC 1 을이용한시스템클럭읽기 (READ_CLK) // 연습 5.1: SFC 1 를이용한시스템클럭읽기 (READ_CLK) //16Bit-SM 용버전 AUTHOR : PT41 FAMILY : A2_0 NAME : ST7PRO2 VERSION : 0.0 VAR_TEMP Date_Time : DATE_AND_TIME ; RET_VAL_SFC1 : INT ; SFC 1 (READ_CLK) call // 현재의날짜와시간 // 값 SFC 1 반환 CALL "READ_CLK" ( RET_VAL := #Ret_Val_SFC1, CDT := #Date_Time); NOP 0; 시간, 분표시 LAR1 P##Date_Time // 변수어드레스결정 L LB [AR1, P#3.0]; // 시간을읽고 T QB 12; // 디스플레이에출력 L LB [AR1, P#4.0]; // 분을읽고 T QB 13; // 디스플레이에출력 END_FUNCTION Page 17

18 연습 6.1 해답 : FB1 (1 부 ) FUNCTION_BLOCK "Station" VERSION : 0.1 VAR_INPUT Initial : BOOL ; Proxy_Switch : BOOL ; Acknowledge : BOOL ; Clock_Bit : BOOL ; VAR_OUTPUT LED : BOOL ; Transp_req : BOOL ; VAR_IN_OUT Conv_busy : BOOL ; VAR State : STRUCT Busy : BOOL ; Completed : BOOL ; Waiting : BOOL ; END_STRUCT ; Aux_1 : BOOL ; Aux_2 : BOOL ; 초기화 // 초기화를이용하여, 기본상태, 즉, 스테이션의상태설정 //"Busy" A #Initial; R #State.Waiting; S #State.Busy; R #State.Completed; R #Conv_busy; State: Busy // 처리가이상태로진행됩니다. 마지막으로작업자가 // 작업장확인버튼을통해부품의처리가완료되었음을확인하면 // 처리가종료됩니다. AN JC S R A R R S #State.Busy; REDY; #LED; #Transp_req; #Acknowledge; #State.Busy; #LED; #State.Completed; // ( 다음페이지에서계속 ) Page 18

19 연습 6.1 해답 : FB1 (2 부 ) 상태 : 완료 // 완료된상태에서는완료된부품이전송벨트상에놓여질때까지대기합니다. // 전송벨트에아무것도없으면입력신호 #Band_frei 가신호를보냅니다. REDY: AN #State.Completed; JC WAIT; A #Clock_Bit; = #LED; AN #Conv_busy; A #Proxy_Switch; S #Conv_busy; S #Transp_req; A #Transp_req; A #Proxy_Switch; FN #Aux_1; R #State.Completed; S #State.Waiting; 상태 : 대기 // 처리되지않은새로운부품을기다립니다. // 처리되지않은새로운부품이도착되면전송벨트의인접스위치가신호를보냅니다. WAIT: AN #State.Waiting; JC ENDE; R #LED; A #Proxy_Switch; // 처리되지않은새로운부품이도착됨 R #Transp_req; // 정지벨트 A #Proxy_Switch; FN #Aux_1; // 제거후에처리시작 R #Conv_busy; 다시한번컨베이어를활성화함 R #State.Waiting; S #State.Busy; ENDE: BEU ; END_FUNCTION_BLOCK Page 19

20 연습 6.1 해답 : OB1 ORGANIZATION_BLOCK OB 1 VERSION : 0.1 VAR_TEMP OB1_EV_CLASS : BYTE ; // 비트 0-3 = 1 ( 들어오는이벤트 ), 비트 4-7 = 1 ( 이벤트클래스 1) OB1_SCAN_1 : BYTE ; //1 (OB1의콜드재시작스캔1), 3 (OB 1의스캔2-n) OB1_PRIORITY : BYTE ; //1 ( 우선순위 1이가장낮음 ) OB1_OB_NUMBR : BYTE ; //1 ( 조직블록 1, OB1) OB1_RESERVED_1 : BYTE ; // 시스템용으로예약됨 OB1_RESERVED_2 : BYTE ; // 시스템용으로예약됨 OB1_PREV_CYCLE : INT ; // 이전 OB1 스캔의순환시간 ( 밀리초 ) OB1_MIN_CYCLE : INT ; //OB1의최소순환시간( 밀리초 ) OB1_MAX_CYCLE : INT ; //OB1의최대순환시간( 밀리초 ) OB1_DATE_TIME : DATE_AND_TIME ; //OB1 시작날짜와시간 제어 : Station_1 CALL "Station", "Station_DB" ( Initial := I 0.0, Proxy_Switch := "INI1", Acknowledge:= "S1", Clock_Bit := M 10.1, LED := "H1"); END_ORGANIZATION_BLOCK Page 20

21 연습 6.2 해답 : FB2 (1 부 ) FUNCTION_BLOCK "Transport" 컨베이어제어 VERSION : 0.1 VAR_INPUT Initial : BOOL ; L_Barrier : BOOL ; Acknowledge : BOOL ; Transp_req : BOOL ; Clock_Bit : BOOL ; VAR_OUTPUT LED : BOOL ; Conv_right : BOOL ; Conv_left : BOOL ; VAR State : STRUCT Waiting : BOOL ; Conv_right : BOOL ; Assembly : BOOL ; Conv_left : BOOL ; END_STRUCT ; 초기화 A #Initial; S #State.Waiting; R #State.Conv_right; R #State.Assembly; R #State.Conv_left; 상태 : 대기 // 완성된부품을위해벨트가이상태에서대기함. AN #State.Waiting; JC RECH; R #Conv_right; R #Conv_left; R #LED; A #Transp_req; R #State.Waiting; S #State.Conv_right; 상태 : Conv_right // 이상태는완성된부품이직접최종어셈블리로전송되는과정을설명합니다. RECH: AN #State.Conv_right; JC ENDM; S #Conv_right; A #Clock_Bit; = #LED; AN #L_Barrier; R #Conv_right; R #State.Conv_right; S #State.Assembly; ( 다음페이지에서계속 ) Page 21

22 연습 6.2 해답 : FB2 (2 부 ) 상태 : 어셈블리 // 이상태에서는벨트에서완성된부품을제거하고처리되지않은새로운 // 부품을놓습니다. 그런후 S4를이용하여비어있는처리스테이션의방향으로 // 처리되지않은새로운부품의전송이시작됩니다. // ENDM: AN #State.Assembly; JC LINK; S #LED; A #Acknowledge; R #LED; R #State.Assembly; S #State.Conv_left; 상태 : Conv_left // 이상태에서완성된부품을전달한스테이션으로처리되지않은 // 새로운부품이전송됩니다. LINK: AN #State.Conv_left; JC ENDE; S #Conv_left; A #Clock_Bit; = #LED; AN #Transp_req; R #Conv_left; R #State.Conv_left; S #State.Waiting; ENDE: BEU ; END_FUNCTION_BLOCK Page 22

23 연습 6.2 해답 : OB1 ORGANIZATION_BLOCK OB 1 VERSION : 0.1 VAR_TEMP OB1_EV_CLASS : BYTE ; // 비트 0-3 = 1( 들어오는이벤트 ), 비트 4-7 = 1 ( 이벤트클래스 1) OB1_SCAN_1 : BYTE ; //1 (OB1의콜드재시작스캔1), 3 (OB1의스캔2-n) OB1_PRIORITY : BYTE ; //1 ( 우선순위 1이가장낮음 ) OB1_OB_NUMBR : BYTE ; //1 ( 조직블록 1, OB1) OB1_RESERVED_1 : BYTE ; // 시스템용으로예약됨 OB1_RESERVED_2 : BYTE ; // 시스템용으로예약됨 OB1_PREV_CYCLE : INT ; // 이전 OB1 스캔의순환시간 ( 밀리초 ) OB1_MIN_CYCLE : INT ; //OB1의최소순환시간( 밀리초 ) OB1_MAX_CYCLE : INT ; //OB1의최대순환시간( 밀리초 ) OB1_DATE_TIME : DATE_AND_TIME ; //OB1 시작날짜와시간 제어 : Station_1 CALL "Station", "Station_DB" ( Initial := I 0.0, Proxy_Switch := "INI1", Acknowledge := "S1", Clock_Bit := M 10.1, LED := "H1", Transp_req := "Transport_DB".Transp_req); 제어 : 컨베이어 CALL "Transport", "Transport_DB" ( Initial := I 0.0, L_Barrier := "LS1", Acknowledge := "S4", Clock_Bit := M 10.1, LED := "H4", Conv_right := "K1 CONV", Conv_left := "K2_CONV"); END_ORGANIZATION_BLOCK Page 23

24 연습 6.3 해답 : FB10 (1 부 ) FUNCTION_BLOCK FB 10 VERSION : 0.1 VAR Station_1 : "Station"; Station_2 : "Station"; Station_3 : "Station"; Transport : "Transport"; Conv_busy : BOOL ; VAR_TEMP Trans_1 : BOOL ; Trans_2 : BOOL ; Trans_3 : BOOL ; Trans : BOOL ; Station_1 CALL #Station_1 ( Initial := I 0.0, Proxy_Switch := "INI1", Acknowledge := "S1", Clock_Bit := "CLOCK_BIT", LED := "H1", Transp_req := #Trans_1, Conv_busy := #Conv_busy); Station_2 CALL #Station_2 ( Initial := I 0.0, Proxy_Switch := "INI2", Acknowledge := "S2", Clock_Bit := "CLOCK_BIT", LED := "H2", Transp_req := #Trans_2, Conv_busy := #Conv_busy); Station_3 CALL #Station_3 ( Initial := I 0.0, Proxy_Switch := "INI3", Acknowledge := "S3", Clock_Bit := "CLOCK_BIT", LED := "H3", Transp_req := #Trans_3, Conv_busy := #Conv_busy); for Automation // ( 다음 and Drives 페이지에서계속 ) Page 24

25 연습 6.3 해답 : FB10; OB1 Logic: Transp_req //#Transp_req의논리만들기 O #Trans_1; O #Trans_2; O #Trans_3; = #Trans; Transport CALL #Transport ( Initial := I 0.0, L_Barrier := "LS1", Acknowledge := "S4", Transp_req := #Trans, Clock_Bit := "CLOCK_BIT", LED := "H4", Conv_right := "K1_CONV", Conv_left := "K2_CONV"); END_FUNCTION_BLOCK ORGANIZATION_BLOCK OB 1 VERSION : 0.1 VAR_TEMP OB1_EV_CLASS : BYTE ; // 비트 0-3 = 1( 들어온는이벤트 ), 비트 4-7 = 1 ( 이벤트클래스 1) OB1_SCAN_1 : BYTE ; //1 (OB1의콜드시작스캔1), 3 (OB 1의스캔2-n) OB1_PRIORITY : BYTE ; //1 ( 우선순위 1이가장낮음 ) OB1_OB_NUMBR : BYTE ; //1 ( 조직블록 1, OB1) OB1_RESERVED_1 : BYTE ; // 시스템용으로예약됨 OB1_RESERVED_2 : BYTE ; // 시스템용으로예약됨 OB1_PREV_CYCLE : INT ; // 이전 OB1 스캔의순환시간 ( 밀리초 ) OB1_MIN_CYCLE : INT ; //OB1의최소순환시간( 밀리초 ) OB1_MAX_CYCLE : INT ; //OB1의최대순환시간( 밀리초 ) OB1_DATE_TIME : DATE_AND_TIME ; //OB1 시작날짜와시간 CALL FB 10, DB 10 ; END_ORGANIZATION_BLOCK Page 25

26 추가연습 6.4 해답 : DB6, FB6 DATA_BLOCK DB 6 FB 1 CU := FALSE; R := FALSE; PV := 0; Q := FALSE; CV := 0; Edge_memory_bit_CU := FALSE; Edge_memory_bit_R := FALSE; END_DATA_BLOCK FUNCTION_BLOCK FB 6 VAR_INPUT CU : BOOL ; R : BOOL ; PV : INT ; VAR_OUTPUT Q : BOOL ; CV : INT ; VAR Edge_memory_bit_CU : BOOL ; Edge_memory_bit_R : BOOL ; A #CU; // 카운트업시작 FP #Edge_memory_bit_CU; // 에지메모리비트설정 JCN NZHL; // 에지가없으면점프 L #CV; // 현재값로드 L 1; // 1 로드 +I ; // 16비트더하기 A OV; // 과잉? JCN NOVL; // 과잉이없으면점프 L 32767; // 그렇지않으면 : 최대값로드 NOVL: T #CV; // 결과를 CV로전송 NZHL: NOP 0; // 카운트업종료 // A #R; // 리셋시작 FP #Edge_memory_bit_R; // 에지메모리비트설정 JCN NRCK; // 에지가없으면점프 L 0; // 16비트상수인 0 로드 T #CV; // 현재값으로전송 NRCK: NOP 0; // 리셋종료 // L #CV; // 출력 Q 처리시작 L #PV; // 사전설정값로드 >=I ; // CV >= PV? = #Q; // RLO를출력Q로지정 END_FUNCTION_BLOCK Page 26

27 연습 7.2 해답 : 데이터블록검사 FUNCTION FC 72 : INT VERSION : 0.1 VAR_INPUT DB_No : WORD ; VAR_TEMP I_DB_Length : WORD ; I_RET_VAL : INT ; I_Write_Protect : BOOL ; DB 검사 CALL "TEST_DB" ( DB_NUMBER := #DB_No, RET_VAL := #I_RET_VAL, DB_LENGTH := #I_DB_Length, WRITE_PROT := #I_Write_Protect); L #I_RET_VAL; L W#16#0; ==I ; JC DBOK; // 작업메모리에서이용할수있는 DB TAK ; L W#16#80A1; ==I ; JC NODB; // CPU에서이용할수없는 DB TAK ; L W#16#80B1; ==I ; JC NODB; // 작업메모리에서이용할수없는 DB TAK ; L W#16#80B2; ==I ; JC DBLM; // 로드메모리에만있는 DB NODB: L -1; T #RET_VAL; // CPU에서이용할수없는 DB BEU ; DBLM: L 1; T #RET_VAL; // 로드메모리에만있는 DB BEU ; DBOK: L 0; T #RET_VAL; // 작업메모리에서이용할수있는 DB END_FUNCTION Page 27

28 연습 7.3 해답 : DB 만들기 ORGANIZATION_BLOCK OB 100 VERSION : 0.1 VAR_TEMP OB100_EV_CLASS : BYTE ; //16#13, 이벤트클래스 1, 이벤트상태로들어가기, // 진단버퍼에로그된이벤트 OB100_STRTUP : BYTE ; //16#81/82/83/84 시작방법 OB100_PRIORITY : BYTE ; //27 ( 우선순위 1이가장낮음 ) OB100_OB_NUMBR : BYTE ; //100 ( 조직블록 100, OB100) OB100_RESERVED_1 : BYTE ; // 시스템용으로예약됨 OB100_RESERVED_2 : BYTE ; // 시스템용으로예약됨 OB100_STOP : WORD ; //CPU를정지시킨이벤트(16#4xxx) OB100_STRT_INFO : DWORD ; // 시스템시작방법에관한정보 OB100_DATE_TIME : DATE_AND_TIME ; //OB 100 시작날짜와시간 DB10 만들기 CALL "CREAT_DB" ( LOW_LIMIT := W#16#A, // 십진수 10 (DB10) 과같음 UP_LIMIT := W#16#A, // " COUNT := W#16#28, // 십진수 40 (40 바이트 ) 과같음 RET_VAL := MW 0, DB_NUMBER := QW 12); END_ORGANIZATION_BLOCK Page 28

29 연습 7.4 해답 : 로드에서작업메모리로 DB 복사 ORGANIZATION_BLOCK OB 1 // 로드에서작업메모리로 DB 복사 VERSION : 2.10 VAR_TEMP OB1_EV_CLASS : BYTE ; // 비트 0-3 = 1 ( 들어오는이벤트 ), Bits 4-7 = 1 ( 이벤트클래스 1) OB1_SCAN_1 : BYTE ; //1 (OB1의콜드재시작스캔1), 3 (OB1의스캔2-n) OB1_PRIORITY : BYTE ; //1 ( 우선순위 1이가장낮음 ) OB1_OB_NUMBR : BYTE ; //1 ( 조직블록 1, OB1) OB1_RESERVED_1 : BYTE ; // 시스템용으로예약됨 OB1_RESERVED_2 : BYTE ; // 시스템용으로예약됨 OB1_PREV_CYCLE : INT ; // 이전 OB1 스캔의순환시간 ( 밀리초 ) OB1_MIN_CYCLE : INT ; //OB1의최소순환시간( 밀리초 ) OB1_MAX_CYCLE : INT ; //OB1의최대순환시간( 밀리초 ) OB1_DATE_TIME : DATE_AND_TIME ; //OB1 시작날짜와시간 CALL "BLKMOV" ( SRCBLK := P#DB10.DBX 0.0 BYTE 40, RET_VAL := QW 12, DSTBLK := P#DB20.DBX 0.0 BYTE 40); END_ORGANIZATION_BLOCK Page 29

30 연습 7.5 해답 : DB 초기화 FUNCTION FC 75 : BOOL // 연습 7.5: DB 초기화 (S7-400 전용 ) VERSION : 0.1 VAR_INPUT DB_NUM : WORD ; INI : BYTE ; VAR_TEMP I_RET_VAL : INT ; I_DB_Length : WORD ; I_WRITE_PROT : BOOL ; I_ANY : ANY ; DB_No : WORD ; I_INI : BYTE ; I_RET_VAL1 : INT ; //DB가작업메모리에있는지확인하고필요할경우초기화합니다. CALL "TEST_DB" ( DB_NUMBER := #DB_NUM, RET_VAL := #I_RET_VAL, DB_LENGTH := #I_DB_Length, WRITE_PROT := #I_WRITE_PROT); L #I_RET_VAL; L W#16#0; ==I ; // 작업메모리에들어있는 DB AN #I_WRITE_PROT; JC OK; CLR ; // 초기화할수없음 = #RET_VAL; // 거짓 (FALSE) 반환 BEU ; OK: LAR1 P##I_ANY; // 임시변수 ANY 지정 L B#16#10; // ANY의식별자를 T LB [AR1,P#0.0]; // 바이트-오프셋 0에 L B#16#2; // BYTE 데이터형의식별자를 T LB [AR1,P#1.0]; // 바이트-오프셋 1에 L #I_DB_Length; // DB 길이를바이트로 T LW [AR1,P#2.0]; // 바이트-오프셋 2에로드 L #DB_NUM; // DB 번호를 T LW [AR1,P#4.0]; // 바이트-오프셋 4에로드 L P#DBX 0.0; // DBX0.0의포인터를 T LD [AR1,P#6.0]; // 바이트-오프셋 6에로드 L #INI; // 초기화바이트를 T #I_INI; // 임시변수에 CALL "FILL" ( BVAL := #I_INI,// 임시변수에만사용 RET_VAL := #I_RET_VAL, BLK := #I_ANY); SET ; = #RET_VAL; BE ; END_FUNCTION Page 30

31 연습 7.6 해답 : 진단버퍼에메시지기록 (SFC 52) FUNCTION FC 76 : VOID // 연습 7.6: 진단버퍼에메시지기록 (SFC 52) VERSION : 0.0 VAR_TEMP I_RET_VAL : INT ; info1 : WORD ; info2 : DWORD ; L T L T W#16#8; #info1; W#16#1; #info2; CALL "WR_USMSG" ( SEND := TRUE, EVENTN := W#16#9B0A, INFO1 := #info1, INFO2 := #info2, RET_VAL := #I_RET_VAL); END_FUNCTION Page 31

32 연습 8.1 해답 : FC43 에서의오류처리 (1 부 ) FUNCTION FC 81 : INT 연습 8.2: 오류처리가있는합계, 평균값계산 //S7-400 용해답 VERSION : 0.0 VAR_INPUT Measured_values : ANY ; VAR_OUTPUT Sum : REAL ; Mean_value : REAL ; VAR_TEMP Loop_counter : WORD ; DB_No : WORD ; Sum_1 : REAL ; sfc_ret_val : INT ; sfc_prgflt : DWORD ; sfc_accflt : DWORD ; L P##Measured_values; // ANY 포인터의영역포인터로드 LAR1 ; // AR1에영역포인터 L B [AR1,P#1.0]; // 데이터형식별자읽기 L 8; // 식별자 REAL(16#08) 로드 ==I ; L -1; // 데이터형식별자가 REAL이아님 JCN ERRO; // 데이터형이 REAL이아니면점프 // 마스크동기화오류 : 호출했던 DB가존재하지않음 // 전역 DB의오류번호 // 인스턴스 DB의오류번호, // 읽기에서영역오류,, // 읽기에서영역길이오류 CALL "MSK_FLT" ( PRGFLT_SET_MASK := DW#16#40C0014, ACCFLT_SET_MASK := DW#16#0, RET_VAL := #sfc_ret_val, PRGFLT_MASKED := #sfc_prgflt, ACCFLT_MASKED := #sfc_accflt); L W [AR1,P#2.0]; // 배열요소의개수로드 T #Loop_counter; // 루프카운터초기화 L W [AR1,P#4.0]; // DB 번호또는 0 로드 T #DB_No; // DB_No=0이면 OPN DB[DB_No]=NOP OPN DB [#DB_No]; // 런타임오류!!, DB가존재하지않는경우 L D [AR1,P#6.0]; // AR1에실질어드레스의영역포인터로드, LAR1 ; // 오류!! 영역식별자가 "DI" 이면 L e+000; // 0을 Accu1 ( 합계 =0.0) 에 L #Loop_counter; // 카운터를 ACCU1에, Sum=0을 ACCU2에 // ( 다음페이지에서계속 ) Page 32

33 연습 8.1 해답 : FC43 에서의오류처리 (2 부 ) BEGN: TAK ; // ACCU2에 Loopc, ACCU1에합계 ENT ; // ACCU3에 Loopc, ACCU2에합계 L D [AR1,P#0.0]; // ACCU1에배열요소 +R ; // ACCU1에합계, ACCU2에 Loopc +AR1 P#4.0; // Ar1을 4 바이트만큼증가시킴 TAK ; // ACCU1에 Loopc, ACCU2에합계 LOOP BEGN; // Loopc를감소시키고필요한경우점프 TAK ; // ACCU1에합계 T #Sum_1; // 합계를 #Sum에 // 오류평가 CALL "READ_ERR" ( PRGFLT_QUERY := DW#16#40C0014, ACCFLT_QUERY := DW#16#0, RET_VAL := #sfc_ret_val, PRGFLT_CLR := #sfc_prgflt, ACCFLT_CLR := #sfc_accflt); L #sfc_prgflt; // 잘못된 DB 확인 L DW#16#40C0000; UD ; // Biweises 반올림 " L -2; // DB의오류코드가존재하지않음 JZ ERRO; // 오류이면점프 L #sfc_prgflt; // 영역또는영역길이오류가있는지확인 L DW#16#14; UD ; L -4; // 영역또는영역길이오류의식별자 JZ ERRO; // 오류이면점프 // 오류가발생하지않았으면 정상 처리과정을진행 L #Sum_1; L #Loop_counter; // ACCU2에합계, ACCU1에개수 DTR ; // 부호가정의되지않은정수 (16비트) 를 REAL에 /R ; // ACCU1에평균값 T #Mean_value; // #Mean_value에평균값 SET ; // BR 비트를 1로설정 SAVE ; L 0 ; // 모든식별자가이상없음 T RET_VAL; JU DMSK; // 동기화오류마스크해제로점프 ERRO: CLR ; // 오류 RLO=0일때의인스트럭션 SAVE ; // BR =0 T #RET_VAL; // 오류코드를 RET_VAL에전송 L L#-1; // 잘못된 REAL 숫자로드 T #Sum; T #Mean_value; DMSK: NOP 0; // 동기오류표시해제 CALL "DMSK_FLT" ( PRGFLT_RESET_MASK := DW#16#40C0014, ACCFLT_RESET_MASK := DW#16#0, RET_VAL := #sfc_ret_val, PRGFLT_MASKED := #sfc_prgflt, ACCFLT_MASKED := #sfc_accflt); BEU ; END_FUNCTION Page 33

34 연습 9.2 해답 (1 부, FB1) FUNCTION_BLOCK "Station" VERSION : 0.1 VAR_INPUT Initial : BOOL ; Proxy_Switch : BOOL ; Acknowledge : BOOL ; Clock_Bit : BOOL ; VAR_OUTPUT LED : BOOL ; Transp_req : BOOL ; VAR_IN_OUT conv_busy : BOOL ; VAR State : STRUCT Busy : BOOL ; Completed : BOOL ; Waiting : BOOL ; END_STRUCT ; Aux_1 : BOOL ; Aux_2 : BOOL ; 초기화 // 초기화를이용하면기본상태, 즉, 스테이션이 Busy 상태로설정됩니다. A R S R R #Initial; #State.Waiting; #State.Busy; #State.Completed; #conv_busy; State: Busy // 처리가이상태에서진행됩니다. 작업자가작업장확인버튼을 // 눌러부품의처리가완료되었음을확인하면 // 처리가종료됩니다. AN JC S R A R R S #State.Busy; REDY; #LED; #Transp_req; #Acknowledge; #State.Busy; #LED; #State.Completed; // ( 다음페이지에서계속 ) Page 34

35 연습 9.2 해답 (2 부, FB1 계속 ) State: Completed // 최종상태에서는완성된부품이전송벨트에놓여질때까지대기합니다. // 전송벨트에아무것도없으면입력신호 #Band_frei가신호를보냅니다. REDY: AN #State.Completed; JC WAIT; A #Clock_Bit; = #LED; AN #Conv_busy; A #Proxy_Switch; S #Conv_busy; S #Transp_req; A #Transp_req; A #Proxy_Switch; FN #Aux_1; R #State.Completed; S #State.Waiting; State: Waiting // 처리되지않은새로운부품을기다립니다. 새로운부품이도착되면전송벨트의인접스위치가 // 신호를보냅니다. WAIT: AN #State.Waiting; JC ENDE; R #LED; A #Proxy_Switch; // 처리되지않은새로운부품이도착됨 R #Transp_req; // 정지벨트 A #Proxy_Switch; FN #Aux_1; // 제거후, 처리시작 R #Conv_busy; // 다시한번컨베이어를활성화함 R #State.Waiting; S #State.Busy; ENDE: BEU ; Page 35

36 FUNCTION_BLOCK "Transport" 컨베이어제어 VERSION : 0.1 VAR_INPUT Initial : BOOL ; L_Barrier : BOOL ; Acknowledge : BOOL ; Transp_req : BOOL ; Clock_Bit : BOOL ; VAR_OUTPUT LED : BOOL ; Conv_right : BOOL ; Conv_left : BOOL ; Count_Value :INT ; VAR State : STRUCT Waiting : BOOL ; Transport_right : BOOL ; Assembly : BOOL ; Transport_left : BOOL ; END_STRUCT ; Counter: SFB0; 초기화 연습 9,2 해답 (3 부, FB2) A S R R R #Initial; #State.Waiting; #State.Transport_right; #State.Assembly; #State.Transport_left; call #Counter (R:= #Initial); // 필요하다면리셋 State: "Waiting" // 컨베이어는이상태에서완성된부품을기다립니다. AN #State.Waiting; JC RECH; R #Conv_right; R #Conv_left; R #LED; A #Transp_req; R #State.Waiting; S #State.Transport_right; // ( 다음페이지에서계속 ) Page 36

37 연습 9.2 해답 (4 부, FB2 계속 ) State: Transport_right // 이상태는완성된부품이최종어셈블리로전송되는과정을설명합니다. RECH: AN #State.Conv_right; JC ENDM; S #Conv_right; A #Clock_Bit; = #LED; AN #L_Barrier; R #Conv_right; R S #State.Conv_right; #State.Assembly; AN #L_Barrier; = #L_Barrier; CALL #Counter ( CU := #L_Barrier, CV := #Current_Value); State: Assembly // 이상태에서완성된부품이제거되고처리되지않은새로운부품이벨트에놓여집니다. // 그런후 S4를이용해비어있는처리스테이션방향으로의부품전송이 // 시작됩니다. ENDM: AN #State.Assembly; JC LINK; S #LED; A #Acknowledge; R #LED; R #State.Assembly; S #State.Conv_left; State: Conv_left // 이상태에서재료가완성된부품을전달한스테이션으로전송됩니다. LINK: AN #State.Conv_left; JC ENDE; S #Conv_left; A #Clock_Bit; = #LED; AN #Transp_req; R #Conv_left; R #State.Conv_left; S #State.Waiting; ENDE: BEU ; END_FUNCTION_BLOCK Page 37

38 연습 9.2 해답 (5 부, FB10) FUNCTION_BLOCK FB 10 VERSION : 0.1 VAR Station_1 : "Station"; Station_2 : "Station"; Station_3 : "Station"; Transport : "Transport"; Conv_busy : BOOL ; VAR_TEMP Trans_1 : BOOL ; Trans_2 : BOOL ; Trans_3 : BOOL ; Trans : BOOL ; Station_1 CALL #Station_1 ( Initial := I 0.0, Proxy_Switch := "INI1", Acknowledge := "S1", Clock_Bit := "CLOCK_BIT", LED := "H1", Transp_req := #Trans_1, Conv_busy := #Conv_busy); Station_2 CALL #Station_2 ( Initial := I 0.0, Proxy_Switch := "INI2", Acknowledge := "S2", Clock_Bit := "CLOCK_BIT", LED := "H2", Transp_req := #Trans_2, Conv_busy := #Conv_busy); Station_3 CALL #Station_3 ( Initial := I 0.0, Proxy_Switch := "INI3", Acknowledge := "S3", Clock_Bit := "CLOCK_BIT", LED := "H3", Transp_req := #Trans_3, Conv_busy := #Conv_busy); for Automation // ( 다음 and Drives 페이지에서계속 ) Page 38

39 Logic: Transp_req // #Transp_req의논리만들기 O #Trans_1; O #Trans_2; O #Trans_3; = #Trans; 연습 9.2 해답 (6 부, FB10 계속 ) Transport CALL #Transport ( Initial := I 0.0, L_Barrier := "LS1", Acknowledge := "S4", Transp_req := #Trans, Clock_Bit := "CLOCK_BIT", LED := "H4", Conv_right := "K1_CONV", Conv_left := "K2_CONV"); END_FUNCTION_BLOCK L #Transport.Current_value ; ITD ; // DINT까지확장 DTB ; // BCD로변환 T QW2 ; Page 39

40 DATA_BLOCK DB 10 VERSION : 0.0 연습 9.2 해답 (7 부, DB10) FB 10 Station_1.Initial := FALSE; Station_1.Proxy_Switch := FALSE; Station_1.Acknowledge := FALSE; Station_1.Clock_Bit := FALSE; Station_1.LED := FALSE; Station_1.Transp_req := FALSE; Station_1.Conv_busy:= FALSE; Station_1.State.Busy := FALSE; Station_1.State.Completed := FALSE; Station_1.State.Waiting := FALSE; Station_1.Aux_1 := FALSE; Station_1.Aux_2 := FALSE; Station_2.Initial := FALSE; Station_2.Proxy_Switch := FALSE; Station_2.Acknowledge := FALSE; Station_2.Clock_Bit := FALSE; Station_2.LED := FALSE; Station_2.Transp_req := FALSE; Station_2.Conv_busy := FALSE; Station_2.State.Busy := FALSE; Station_2.State.Completed := FALSE; Station_2.State.Waiting := FALSE; Station_2.Aux_1 := FALSE; Station_2.Aux_2 := FALSE; Station_3.Initial := FALSE; Station_3.Proxy_Switch := FALSE; Station_3.Acknowledge := FALSE; Station_3.Clock_Bit := FALSE; Station_3.LED := FALSE; Station_3.Transp_req := FALSE; Station_3.Conv_busy := FALSE; Station_3.State.Busy := FALSE; Station_3.State.Completed := FALSE; Station_3.State.Waiting := FALSE; Station_3.Aux_1 := FALSE; Station_3.Aux_2 := FALSE; Transport.Initial := FALSE; Transport.L_Barrier := FALSE; Transport.Acknowledge := FALSE; Transport.Transp_req := FALSE; Transport.Clock_Bit := FALSE; Transport.LED := FALSE; Transport.Conv_right := FALSE; Transport.Conv_left := FALSE; Transport.State.Waiting := FALSE; Transport.State.Transport_right := FALSE; Transport.State.Assembly := FALSE; Transport.State.Transport_left := FALSE; Conv_busy := FALSE; END_DATA_BLOCK Page 40

41 ORGANIZATION_BLOCK OB 1 VERSION : 0.1 연습 9.2 해답 (8 부, OB1) VAR_TEMP OB1_EV_CLASS : BYTE ; // 비트 0-3 = 1 ( 들어오는이벤트 ), Bits 4-7 = 1 ( 이벤트클래스 1) OB1_SCAN_1 : BYTE ; //1 (OB 1의콜드재시작스캔1), 3 (OB1의스캔2-n) OB1_PRIORITY : BYTE ; //1 ( 우선순위 1이가장낮음 ) OB1_OB_NUMBR : BYTE ; //1 ( 조직블록 1, OB1) OB1_RESERVED_1 : BYTE ; // 시스템용으로예약됨 OB1_RESERVED_2 : BYTE ; // 시스템용으로예약됨 OB1_PREV_CYCLE : INT ; // 이전 OB1 스캔의순환시간 ( 밀리초 ) OB1_MIN_CYCLE : INT ; //OB1의최소순환시간( 밀리초 ) OB1_MAX_CYCLE : INT ; //OB1의최대순환시간( 밀리초 ) OB1_DATE_TIME : DATE_AND_TIME ; //OB1 시작날짜와시간 CALL FB 10, DB 10 ; END_ORGANIZATION_BLOCK Page 41

42 연습 10.1 해답 (1 부 ) ORGANIZATION_BLOCK OB 100 SFB 의 "START 과 "STOP 초기화 VERSION : 0.1 VAR_TEMP OB100_EV_CLASS : BYTE ; //16#13, 이벤트클래스 1, 들어오는이벤트상태, 진단버퍼에 이벤트가로그됨 OB100_STRTUP : BYTE ; //16#81/82/83/84 시작방법 OB100_PRIORITY : BYTE ; //27 ( 우선순위 1이가장낮음 ) OB100_OB_NUMBR : BYTE ; //100 ( 조직블록 100, OB100) OB100_RESERVED_1 : BYTE ; // 시스템용으로예약됨 OB100_RESERVED_2 : BYTE ; // 시스템용으로예약됨 OB100_STOP : WORD ; //CPU를정지시키는이벤트 (16#4xxx) OB100_STRT_INFO : DWORD ; // 시스템의시작방법에관한정보 OB100_DATE_TIME : DATE_AND_TIME ; //OB100 시작날짜와시간 P_NAME : ARRAY [1.. 9 ] OF CHAR ; //Enter STRING "P_PROGRAM" in PI_NAME // ************************************************************************* // *** CFB의 "PI_NAME 파라미터정의 **** * //************************************************************************** // L 'P_PR'; T MD 100; L 'OGRA'; T MD 104; L 'M'; T MB 108; CALL SFB 20, DB 20 (// SFB "STOP 의초기화 REQ := FALSE, ID := W#16#3, PI_NAME := P#M BYTE 9); CALL SFB 19, DB 19 (// SFB "START 의초기화 REQ := FALSE, ID := W#16#3, PI_NAME := P#M BYTE 9); END_ORGANIZATION_BLOCK Page 42

43 ORGANIZATION_BLOCK OB 1 VERSION : 0.1 연습 10.1 해답 : OB100, OB1(2 부 ) VAR_TEMP OB1_EV_CLASS : BYTE ; // 비트 0-3 = 1 ( 들어오는이벤트 ), Bits 4-7 = 1 ( 이벤트클래스 1) OB1_SCAN_1 : BYTE ; //1 (OB1의콜드재시작스캔1), 3 (OB 1의스캔2-n) OB1_PRIORITY : BYTE ; //1 ( 우선순위 1이가장낮음 ) OB1_OB_NUMBR : BYTE ; //1 ( 조직블록 1, OB1) OB1_RESERVED_1 : BYTE ; // 시스템용으로예약됨 OB1_RESERVED_2 : BYTE ; // 시스템용으로예약됨 OB1_PREV_CYCLE : INT ; // 이전 OB1 스캔의순환시간 ( 밀리초 ) OB1_MIN_CYCLE : INT ; //OB1의최소순환시간( 밀리초 ) OB1_MAX_CYCLE : INT ; //OB1의최대순환시간( 밀리초 ) OB1_DATE_TIME : DATE_AND_TIME ; //OB1 시작날짜와시간 DONE_FLAG_20 : BOOL ; ERROR_FLAG_20 : BOOL ; DONE_FLAG_19 : BOOL ; ERROR_FLAG_19 : BOOL ; STATUS_WORD_20 : WORD ; STATUS_WORD_19 : WORD ; "SFB_STOP" CALL SFB 20, DB 20 ( REQ := I 0.0, DONE := #DONE_FLAG_20, ERROR := #ERROR_FLAG_20, STATUS := #STATUS_WORD_20); "SFB_START" CALL SFB 19, DB 19 ( REQ := I 0.1, DONE := #DONE_FLAG_19, ERROR := #ERROR_FLAG_19, STATUS := #STATUS_WORD_19); // ( 다음페이지에서계속 ) Page 43

44 연습 10.1 해답 : OB100, OB1 (2 부 ) A( ; // QW2에 SFB START 의 STATUS 워드가반환됨 O #DONE_FLAG_19; O #ERROR_FLAG_19; ) ; JNB _001; L #STATUS_WORD_19; T QW 2; _001: NOP 0; A( ; // QW2에 SFB STOP 의 STATUS 워드가반환됨 O #DONE_FLAG_20; O #ERROR_FLAG_20; ) ; JNB _002; L #STATUS_WORD_20; T QW 2; _002: NOP 0; A I 0.0; // 그렇지않으면, QW2에 FFFF를기록함 BEC ; A I 0.1; BEC ; L W#16#FFFF; T QW 2; END_ORGANIZATION_BLOCK Page 44

45 연습 10.2 해답 : OB100, OB1 (1 부 ) ORGANIZATION_BLOCK OB 100 완전재시작 //Exercise : S7-400 는 S7-300 외부에서읽어와 S7-300 내부에기록합니다. AUTHOR : AUT95 FAMILY : A2_0 NAME : ST7PROG3 VERSION : 0.0 VAR_TEMP OB100_EV_CLASS : BYTE ; //16#13, 이벤트클래스 1, 이벤트상태로들어가기, 진단버퍼에로그된이벤트 OB100_STRTUP : BYTE ; //16#81/82/83/84 시작방법 OB100_PRIORITY : BYTE ; //27 ( 우선순위 1이가장낮음 ) OB100_OB_NUMBR : BYTE ; //100 ( 조직블록 100, OB100) OB100_RESERVED_1 : BYTE ; // 시스템용으로예약됨 OB100_RESERVED_2 : BYTE ; // 시스템용으로예약됨 OB100_STOP : WORD ; //CPU를정지시키는이벤트 (16#4xxx) OB100_STRT_INFO : DWORD ; // 시스템시작방법에관한정보 OB100_DATE_TIME : DATE_AND_TIME ; //OB100 시작날짜와시간 PI_NAME : ARRAY [1.. 9 ] OF CHAR ; Initialize CFB "GET" CALL SFB 14, DB 14 ( REQ := FALSE, ID := W#16#3); NOP 0; CFB "PUT 초기화 CALL SFB 15, DB 15 ( REQ := FALSE, ID := W#16#3); END_ORGANIZATION_BLOCK Page 45

46 연습 10.2 해답 : OB100, OB1 (2 부 ) ORGANIZATION_BLOCK OB 1 사이클 // 연습 : S7400 은 S7-300 외부에서읽어와 S7-300 내에기록합니다. AUTHOR : AUt95 FAMILY : A2_0 NAME : ST7PROG3 VERSION : 0.0 VAR_TEMP OB1_EV_CLASS : BYTE ; // 비트 0-3 = 1 ( 들어오는이벤트 ), Bits 4-7 = 1 ( 이벤트클래스 1) OB1_SCAN_1 : BYTE ; //1 (OB1의콜드재시작스캔1), 3 (OB1의스캔2-n) OB1_PRIORITY : BYTE ; //1 ( 우선순위 1이가장낮음 ) OB1_OB_NUMBR : BYTE ; //1 ( 조직블록 1, OB1) OB1_RESERVED_1 : BYTE ; // 시스템용으로예약됨 OB1_RESERVED_2 : BYTE ; // 시스템용으로예약됨 OB1_PREV_CYCLE : INT ; // 이전 OB1 스캔의순환시간 ( 밀리초 ) OB1_MIN_CYCLE : INT ; //OB1의최소순환시간( 밀리초 ) OB1_MAX_CYCLE : INT ; //OB1의최대순환시간( 밀리초 ) OB1_DATE_TIME : DATE_AND_TIME ; //OB1의시작날짜와시간 NDR_FLAG_14 : BOOL ; ERROR_FLAG_14 : BOOL ; DONE_FLAG_15 : BOOL ; ERROR_FLAG_15 : BOOL ; STATUS_WORD_14 : WORD ; STATUS_WORD_15 : WORD ; "SFB_GET" CALL SFB 14, DB 14 (// "GET 호출 REQ := I 0.2, ID := W#16#3, NDR := #NDR_FLAG_14, ERROR := #ERROR_FLAG_14, STATUS := #STATUS_WORD_14, ADDR_1 := P#I 0.0 BYTE 1, ADDR_2 := P#I 4.0 WORD 1, RD_1 := P#Q 0.0 BYTE 1, RD_2 := P#Q 4.0 WORD 1); // ( 다음페이지에서계속 ) Page 46

47 "SFB_PUT" 연습 10.2 해답 : OB100, OB1 (3 부 ) CALL SFB 15, DB 15 (//"PUT 호출 ) REQ := I 0.3, ID := W#16#3, DONE := #DONE_FLAG_15, ERROR := #ERROR_FLAG_15, STATUS := #STATUS_WORD_15, ADDR_1 := P#Q 12.0 WORD 1, SD_1 := P#I 2.0 WORD 1); A( ; // QW2에 SFB GET 의 STATUS 워드가반환됨 O #NDR_FLAG_14; O #ERROR_FLAG_14; ) ; JNB _002; L #STATUS_WORD_14; T QW 2; _002: NOP 0; A( ; // QW2에 SFB PUT 의 STATUS 워드가반환됨 O #DONE_FLAG_15; O #ERROR_FLAG_15; ) ; JNB _001; L #STATUS_WORD_15; T QW 2; _001: NOP 0; A I 0.2; // 그렇지않으면 QW2에 FFFF를기록함 BEC ; A I 0.3; BEC ; L W#16#FFFF; T QW 2; END_ORGANIZATION_BLOCK Page 47

48 "SFB_PUT" 연습 10.2 해답 : OB100, OB1 (3 부 ) CALL SFB 15, DB 15 (// "PUT" 호출 REQ := I 0.3, ID := W#16#3, DONE := #DONE_FLAG_15, ERROR := #ERROR_FLAG_15, STATUS := #STATUS_WORD_15, ADDR_1 := P#Q 12.0 WORD 1, SD_1 := P#I 2.0 WORD 1); A( ; // QW2에 SFB GET 의 STATUS 워드가반환됨 O #NDR_FLAG_14; O #ERROR_FLAG_14; ) ; JNB _002; L #STATUS_WORD_14; T QW 2; _002: NOP 0; A( ; // QW2에 SFB PUT 의 STATUS 워드가반환됨 O #DONE_FLAG_15; O #ERROR_FLAG_15; ) ; JNB _001; L #STATUS_WORD_15; T QW 2; _001: NOP 0; A I 0.2; // 그렇지않으면 QW2에 FFFF를기록함 BEC ; A I 0.3; BEC ; L W#16#FFFF; T QW 2; END_ORGANIZATION_BLOCK Page 48

<4D F736F F F696E74202D2032C0E55FC6AEB7B9C0CCB4D720C5B0C6AEB1B8BCBAC7B05F446F6E652E707074>

<4D F736F F F696E74202D2032C0E55FC6AEB7B9C0CCB4D720C5B0C6AEB1B8BCBAC7B05F446F6E652E707074> File: PRO_1_02E.1 차례 S7-300 트레이닝키트... 2 S7-300 트레이닝키트 PLC 구성... 3 S7-300 모듈 I/O 어드레스... 4 S7-400트레이닝키트전체구성품. 5 S7-400 트레이닝키트 PLC 구성... 6 시뮬레이터... 7 콘베이어모델... 8 전체심벌리스트 (1)... 9 전체심벌리스트 (2)... 10 전체심벌리스트

More information

PRO1_18E [읽기 전용]

PRO1_18E [읽기 전용] : S700 Siemens AG 999 All rights reserved Date: 0009 File: PRO_E Information and S7300 S7300 CPU () 3 S7300 CPU () S700 CPU () 5 S700 CPU () 6 S700 7 S700 : 9 CPU : 0 CPU : CPU : 3 SFC 35 5 ST7PRO : S700

More information

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074>

<4D F736F F F696E74202D203137C0E55FBFACBDC0B9AEC1A6BCD6B7E7BCC72E707074> SIMATIC S7 Siemens AG 2004. All rights reserved. Date: 22.03.2006 File: PRO1_17E.1 차례... 2 심벌리스트... 3 Ch3 Ex2: 프로젝트생성...... 4 Ch3 Ex3: S7 프로그램삽입... 5 Ch3 Ex4: 표준라이브러리에서블록복사... 6 Ch4 Ex1: 실제구성을 PG 로업로드하고이름변경......

More information

PRO1_16E [읽기 전용]

PRO1_16E [읽기 전용] MPI PG 720 Siemens AG 1999 All rights reserved File: PRO1_16E1 Information and MPI 2 MPI 3 : 4 GD 5 : 6 : 7 GD 8 GD 9 GD 10 GD 11 : 12 : 13 : 14 SFC 60 SFC 61 15 NETPRO 16 SIMATIC 17 S7 18 1 MPI MPI S7-300

More information

PRO1_09E [읽기 전용]

PRO1_09E [읽기 전용] Siemens AG 1999 All rights reserved File: PRO1_09E1 Information and - ( ) 2 3 4 5 Monitor/Modify Variables" 6 7 8 9 10 11 CPU 12 Stop 13 (Forcing) 14 (1) 15 (2) 16 : 17 : Stop 18 : 19 : (Forcing) 20 :

More information

PRO1_01E [읽기 전용]

PRO1_01E [읽기 전용] PCS 7 Software NET PC WinCC HMI DP Controller Siemens AG 1999 All rights reserved File: PRO1_01E1 2 S7-200 3 S7-200: 4 S7-200: CPU 5 S7-300 6 S7-300: 7 S7-300: CPU 8 S7-400 9 S7-400: 10 S7-400: CPU (1)

More information

Bausteinaufrufe und Multiinstanz-Modell

Bausteinaufrufe und Multiinstanz-Modell 블록호출및복수인스턴스모델 목차 페이지 S7-CPU의소프트웨어구조. 2 블록개요. 3 함수호출 (FC).... 4 FC 호출에서파라미터전달. 5 함수를호출하기위한다른인스트럭션 6 함수블록 (FB) 을가지는인스턴스만들기.. 7 함수블록 (FB) 을가지는인스턴스만들기... 8 FB 호출에서파라미터전달 9 FB를호출하기위한다른인스트럭션... 10 " 전달되는 " 파라미터..

More information

PRO1_14E [읽기 전용]

PRO1_14E [읽기 전용] Siemens AG 1999 All rights reserved Date 22-2-19 File PRO1_14E1 Information and 2 3 S7-3 4 SM335 ( ) 5 SM335 ( ) 6 SM331 7 8 9 1 11 12 SM335 13 SM331 14 15 16 1 CPU ph 5mV 1V 5V 1V 2mA 42mA MR ADC PIW

More information

PRO1_04E [읽기 전용]

PRO1_04E [읽기 전용] Siemens AG 1999 All rights reserved File: PRO1_04E1 Information and S7-300 2 S7-400 3 EPROM / 4 5 6 HW Config 7 8 9 CPU 10 CPU : 11 CPU : 12 CPU : 13 CPU : / 14 CPU : 15 CPU : / 16 HW 17 HW PG 18 SIMATIC

More information

PRO1_02E [읽기 전용]

PRO1_02E [읽기 전용] Siemens AG 1999 All rights reserved File: PRO1_02E1 Information and 2 STEP 7 3 4 5 6 STEP 7 7 / 8 9 10 S7 11 IS7 12 STEP 7 13 STEP 7 14 15 : 16 : S7 17 : S7 18 : CPU 19 1 OB1 FB21 I10 I11 Q40 Siemens AG

More information

Diagnostizieren von Fehlern

Diagnostizieren von Fehlern 동기및비동기오류처리 목차 페이지 비동기오류처리... 2 오류조직블록처리... 3 비동기오류 OB의보기... 4 동기오류처리... 5 프로그래밍오류 OB121에대한시작정보... 6 액세스오류 OB122에대한시작정보... 7 동기오류마스크... 8 동기오류의마스크를위한 SFC 36... 9 프로그래밍오류필터의구조... 10 액세스오류필터의구조... 11 동기오류의마스크를해제하기위한

More information

API 매뉴얼

API 매뉴얼 PCI-DIO12 API Programming (Rev 1.0) Windows, Windows2000, Windows NT and Windows XP are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations mentioned

More information

Status Bit-Dependent Instructions

Status Bit-Dependent Instructions 상태비트의존적인인스트럭션 File: PRO2_01e.1 Information and 목차 페이지 S7-CPU의레지스터및메모리영역... 2 상태워드구조.... 3 상태비트검사..... 4 상태비트인스트럭션........ 5 블록호출또는복잡한함수에서의 BR 비트및 ENO... 6 상태비트에의존적인점프함수... 7 조건코드에의존적인점프함수..... 8 점프분산자의프로그래밍...

More information

Indirekte Adressierung und Adre?egisteranweisungen

Indirekte Adressierung und Adre?egisteranweisungen 간접어드레싱및어드레스레지스터인스트럭션??? 1 2 #Ini_Value #Pointer 9 10 # 카운터 L W [AR1, P#200.0] File: PRO2_04e.1 목차 페이지 STEP7에서의어드레싱방법... 2 변수의직접어드레싱... 3 DB 변수의직접어드레싱... 4 프로그램에서 DB 정보평가... 5 메모리간접어드레싱... 6 메모리간접어드레싱을이용한포인터구조...

More information

歯표지_통합_.PDF

歯표지_통합_.PDF LG GLOFA MASTER-K PID G3F-PIDA G4F-PIDA G3F-PIDA/G4F-PIDA PLC GLOFA GM3/4 CPU MASTER-K 200S/300S/1000S CPU!!! 2 ! PLC,,,,,! PCB,,, Off! 1 1-1 ~ 1-1 11 1-1 2 2-1 ~ 2-13 21 2-1 22 2-2 23 2-3 24 PID 2-4 241

More information

API 매뉴얼

API 매뉴얼 PCI-TC03 API Programming (Rev 1.0) Windows, Windows2000, Windows NT, Windows XP and Windows 7 are trademarks of Microsoft. We acknowledge that the trademarks or service names of all other organizations

More information

untitled

untitled 4.1.3 %IX0.0.0 %IX0.0.1 %QX0.1.0 ( ) %QX0.1.0 %IX0.0.0 %IX0.0.1 %QX0.1.0 * 5 GMWIN. - 31 - SW1 ON SW2 OFF. SW2 ON SW1 OFF. (%QX0.1.0) SW1 (%IX0.0.0) SW2 (%IX0.0.0) SW1 SW1 SW2 SW2 ( ) SW1 SW2-32 - P (

More information

상태비트의존적인인스트럭션 Date: File: PRO2_01e.1 Information and 목차 페이지 S7-CPU의레지스터및메모리영역... 2 상태워드구조 상태비트검사 상태비트인스트럭션 블록호출또는복잡한

상태비트의존적인인스트럭션 Date: File: PRO2_01e.1 Information and 목차 페이지 S7-CPU의레지스터및메모리영역... 2 상태워드구조 상태비트검사 상태비트인스트럭션 블록호출또는복잡한 상태비트에따른인스트럭션 정보및교육 누산기함수 REAL 숫자를가지는인스트럭션 간접어드레싱및어드레스레지스터인스트럭션 사용자프로그램에서데이터관리 프로그래밍 2 코스 블록호출및복수인스턴스모델 라이브러리사용 동기및비동기오류처리 이문서는교육용으로만들어졌습니다. Siemens 는내용에대한책임을지지않습니다. 본문서및그내용에대한복제, 전송, 사용은서면승인없이는허용되지않습니다.

More information

untitled

untitled 1 PLC 1.1 PLC 1.1.1 PLC PLC(Programmable Logic Controller),,, LSI,,. (NEMA: National Electrical Manufactrurers Association),,,,. 1.1.2 PLC PLC. FMS(Flexible Manufacturing System) PLC,. 1-1 PLC. - 5 - 1.2

More information

Using Libraries

Using Libraries 라이브러리사용 FC 100 FC 101 FC 102 FC 103 목차 페이지 라이브러리에서흥미로운사실... 2 표준라이브러리의설정및내용... 3 시스템함수에서흥미로운사실... 4 시스템함수에대한개요 (1부)... 5 시스템함수에대한개요 (2부)... 6 시스템함수에대한개요 (3부)... 7 시스템함수에대한개요 (4부)... 8 시스템함수에대한개요 (5부)...

More information

CPX-E-SYS_BES_C_ _ k1

CPX-E-SYS_BES_C_ _ k1 CPX-E 8727 27-7 [875294] CPX-E-SYS-KO CODESYS, PI PROFIBUS PROFINET (). :, 2 Festo CPX-E-SYS-KO 27-7 ... 5.... 5.2... 5.3... 5.4... 5.5... 5 2... 6 2.... 6 2..... 6 2..2 CPX-E... 7 2..3 CPX-E... 9 2..4...

More information

OCW_C언어 기초

OCW_C언어 기초 초보프로그래머를위한 C 언어기초 4 장 : 연산자 2012 년 이은주 학습목표 수식의개념과연산자및피연산자에대한학습 C 의알아보기 연산자의우선순위와결합방향에대하여알아보기 2 목차 연산자의기본개념 수식 연산자와피연산자 산술연산자 / 증감연산자 관계연산자 / 논리연산자 비트연산자 / 대입연산자연산자의우선순위와결합방향 조건연산자 / 형변환연산자 연산자의우선순위 연산자의결합방향

More information

PRO1_19E [읽기 전용]

PRO1_19E [읽기 전용] PCS 7 NET PC WinCC HMI DP Siemens AG 1999 All rights reserved File: PRO1_19E1 Information and 2 /C7/M7 WinAC 3 STEP 7- S7/C7/M7 4 S7- GRAPH 5 S7- HiGraph 6 S7- SCL 7 CFC M7 8 S7- SFC 9 S7- PDIAG 10 S7-

More information

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074>

< E20C6DFBFFEBEEE20C0DBBCBAC0BB20C0A7C7D12043BEF0BEEE20492E707074> Chap #2 펌웨어작성을위한 C 언어 I http://www.smartdisplay.co.kr 강의계획 Chap1. 강의계획및디지털논리이론 Chap2. 펌웨어작성을위한 C 언어 I Chap3. 펌웨어작성을위한 C 언어 II Chap4. AT89S52 메모리구조 Chap5. SD-52 보드구성과코드메모리프로그래밍방법 Chap6. 어드레스디코딩 ( 매핑 ) 과어셈블리어코딩방법

More information

Microsoft Word - logic2005.doc

Microsoft Word - logic2005.doc 제 8 장 Counters 실험의목표 - Catalog counter 의동작원리에대하여익힌다. - 임의의 counter를통하여 FSM 구현방법을익힌다. - 7-segment display 의동작원리를이해한다. 실험도움자료 1. 7-segment display 7-segment는디지털회로에서숫자를표시하기위하여가장많이사용하는소자이다. 이름에서알수있듯이 7개의 LED(

More information

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D>

<4D F736F F F696E74202D20BBB7BBB7C7D15F FBEDFB0A3B1B3C0B05FC1A638C0CFC2F72E BC8A3C8AF20B8F0B5E55D> 뻔뻔한 AVR 프로그래밍 The Last(8 th ) Lecture 유명환 ( yoo@netplug.co.kr) INDEX 1 I 2 C 통신이야기 2 ATmega128 TWI(I 2 C) 구조분석 4 ATmega128 TWI(I 2 C) 실습 : AT24C16 1 I 2 C 통신이야기 I 2 C Inter IC Bus 어떤 IC들간에도공통적으로통할수있는 ex)

More information

[8051] 강의자료.PDF

[8051] 강의자료.PDF CY AC F0 RS1 RS0 OV - P 0xFF 0x80 0x7F 0x30 0x2F 0x20 0x1F 0x18 0x17 0x10 0x0F 0x08 0x07 0x00 0x0000 0x0FFF 0x1000 0xFFFF 0x0000 0xFFFF RAM SFR SMOD - - - GF1 GF0 PD IDL 31 19 18 9 12 13 14 15 1 2 3 4

More information

Microsoft PowerPoint - es-arduino-lecture-03

Microsoft PowerPoint - es-arduino-lecture-03 임베디드시스템개론 : Arduino 활용 Lecture #3: Button Input & FND Control 2012. 3. 25 by 김영주 강의목차 디지털입력 Button switch 입력 Button Debounce 7-Segment FND : 직접제어 7-Segment FND : IC 제어 2 디지털입력 : Switch 입력 (1) 실습목표 아두이노디지털입력처리실습

More information

High Available SIMATIC S7-400H

High Available SIMATIC S7-400H Automation and Drives IMATIC S7-400H The Automation System Automation and Drives A&D AS, 0892006, Chart 2. (Redundant) :.... I/O Automation and Drives A&D AS, 0892006, Chart 3 (1) I/O (,, ) (Offshore)

More information

Microsoft PowerPoint - chap04-연산자.pptx

Microsoft PowerPoint - chap04-연산자.pptx int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); } 1 학습목표 수식의 개념과 연산자, 피연산자에 대해서 알아본다. C의 를 알아본다. 연산자의 우선 순위와 결합 방향에

More information

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2

목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2 제 8 장. 포인터 목차 포인터의개요 배열과포인터 포인터의구조 실무응용예제 C 2 포인터의개요 포인터란? 주소를변수로다루기위한주소변수 메모리의기억공간을변수로써사용하는것 포인터변수란데이터변수가저장되는주소의값을 변수로취급하기위한변수 C 3 포인터의개요 포인터변수및초기화 * 변수데이터의데이터형과같은데이터형을포인터 변수의데이터형으로선언 일반변수와포인터변수를구별하기위해

More information

설계란 무엇인가?

설계란 무엇인가? 금오공과대학교 C++ 프로그래밍 jhhwang@kumoh.ac.kr 컴퓨터공학과 황준하 6 강. 함수와배열, 포인터, 참조목차 함수와포인터 주소값의매개변수전달 주소의반환 함수와배열 배열의매개변수전달 함수와참조 참조에의한매개변수전달 참조의반환 프로그래밍연습 1 /15 6 강. 함수와배열, 포인터, 참조함수와포인터 C++ 매개변수전달방법 값에의한전달 : 변수값,

More information

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F >

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202839C1D6C2F7207E203135C1D6C2F > 10주차 문자 LCD 의인터페이스회로및구동함수 Next-Generation Networks Lab. 5. 16x2 CLCD 모듈 (HY-1602H-803) 그림 11-18 19 핀설명표 11-11 번호 분류 핀이름 레벨 (V) 기능 1 V SS or GND 0 GND 전원 2 V Power DD or V CC +5 CLCD 구동전원 3 V 0 - CLCD 명암조절

More information

Microsoft PowerPoint - ch07 - 포인터 pm0415

Microsoft PowerPoint - ch07 - 포인터 pm0415 2015-1 프로그래밍언어 7. 포인터 (Pointer), 동적메모리할당 2015 년 4 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) Outline 포인터 (pointer) 란? 간접참조연산자

More information

슬라이드 제목 없음

슬라이드 제목 없음 ETOS-DPS-X Guide AC&T SYSTEM 1 ETOS-DPS-X 개요 ETOS-DPS-X Field Bus Network 중 Profibus-DP Network 에연결되는장비. ProfiBus-DP Network 시스템에 DP 통신을지원하지않는현장장비에대한통신서버기능구현. Profibus-DP Slave 동작하기때문에반드시 DP-Master 모듈이있는시스템에서적용가능.

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 System Software Experiment 1 Lecture 5 - Array Spring 2019 Hwansoo Han (hhan@skku.edu) Advanced Research on Compilers and Systems, ARCS LAB Sungkyunkwan University http://arcs.skku.edu/ 1 배열 (Array) 동일한타입의데이터가여러개저장되어있는저장장소

More information

untitled

untitled Push... 2 Push... 4 Push... 5 Push... 13 Push... 15 1 FORCS Co., LTD A Leader of Enterprise e-business Solution Push (Daemon ), Push Push Observer. Push., Observer. Session. Thread Thread. Observer ID.

More information

초급과정 목차

초급과정 목차 제목 S7 PLC 소개.... 2 STEP 7 패키지구성... 3 Automation License Manager... 4 Automation License Manager 화면설명... 5 License 설치 / 백업... 6 P.C PLC 연결...... 7 인터페이스설정.... 8 P.C Adapter(RS-232C, USB) 인터페이스설정... 9 P.C

More information

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate ALTIBASE HDB 6.1.1.5.6 Patch Notes 목차 BUG-39240 offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG-41443 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate 한뒤, hash partition

More information

À̵¿·Îº¿ÀÇ ÀÎÅͳݱâ¹Ý ¿ø°ÝÁ¦¾î½Ã ½Ã°£Áö¿¬¿¡_.hwp

À̵¿·Îº¿ÀÇ ÀÎÅͳݱâ¹Ý ¿ø°ÝÁ¦¾î½Ã ½Ã°£Áö¿¬¿¡_.hwp l Y ( X g, Y g ) r v L v v R L θ X ( X c, Yc) W (a) (b) DC 12V 9A Battery 전원부 DC-DC Converter +12V, -12V DC-DC Converter 5V DC-AC Inverter AC 220V DC-DC Converter 3.3V Motor Driver 80196kc,PWM Main

More information

11장 포인터

11장 포인터 누구나즐기는 C 언어콘서트 제 9 장포인터 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 포인터란? 포인터 (pointer): 주소를가지고있는변수 메모리의구조 변수는메모리에저장된다. 메모리는바이트단위로액세스된다. 첫번째바이트의주소는 0, 두번째바이트는 1, 변수와메모리

More information

Microsoft PowerPoint - 부호기와 복호기.PPT

Microsoft PowerPoint - 부호기와 복호기.PPT 논리회로실험부호기와복호기 2005. 5. 3. 부호기와복호기란? 이론실험내용 개요 Encoder & Decoder 서로다른부호간의변환에사용되는것으로디지털신호를압축하거나전송시깨지지않도록바꾸는등여러가지목적에의해부호화라는장치와부호화되어전송되어온신호를다시원래의디지털신호로복호하는장치들을말한다. CODEC(enCOder DECoder) 이라고도한다. 기타 10진 to

More information

Microsoft PowerPoint - chap10-함수의활용.pptx

Microsoft PowerPoint - chap10-함수의활용.pptx #include int main(void) { int num; printf( Please enter an integer: "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 중 값에 의한 전달 방법과

More information

T100MD+

T100MD+ User s Manual 100% ) ( x b a a + 1 RX+ TX+ DTR GND TX+ RX+ DTR GND RX+ TX+ DTR GND DSR RX+ TX+ DTR GND DSR [ DCE TYPE ] [ DCE TYPE ] RS232 Format Baud 1 T100MD+

More information

금오공대 컴퓨터공학전공 강의자료

금오공대 컴퓨터공학전공 강의자료 C 프로그래밍프로젝트 Chap 14. 포인터와함수에대한이해 2013.10.09. 오병우 컴퓨터공학과 14-1 함수의인자로배열전달 기본적인인자의전달방식 값의복사에의한전달 val 10 a 10 11 Department of Computer Engineering 2 14-1 함수의인자로배열전달 배열의함수인자전달방식 배열이름 ( 배열주소, 포인터 ) 에의한전달 #include

More information

1

1 1 2 3 4 5 6 b b t P A S M T U s 7 m P P 8 t P A S M T U s 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 Chapter 1 29 1 2 3 4 18 17 16 15 5 6 7 8 9 14 13 12 11 10 1 2 3 4 5 9 10 11 12 13 14 15

More information

Microsoft PowerPoint - 13장_OB 블록.ppt

Microsoft PowerPoint - 13장_OB 블록.ppt OB (Organization Block) 블록 운영시스템 OB1 FC FB FB FC SFC System Functions SFB System Function Blocks 다른 OB File: PRO1_13E.1 차례 교육목표... 2 Organization Blocks 개요... 3 Warm Restart 와 Hot Restart 시의구동 OB... 4

More information

歯표지.PDF

歯표지.PDF GLOFA MASTERK !!!! 8 4 4 4 4 4!! 8 4 8 8 8 8 4 4 1 1 1 1 1 2 ± 1 1 3 2 + < < ± 2 1 2 DIN BS ( C) (µv) K NiCrNi NiCrNiAI 2000~12000 5891~48828 J PeCuNi 2000~8000 7890~45498 E NiCrCuNi 1500~6000 7297~45085

More information

슬라이드 1

슬라이드 1 -Part3- 제 4 장동적메모리할당과가변인 자 학습목차 4.1 동적메모리할당 4.1 동적메모리할당 4.1 동적메모리할당 배울내용 1 프로세스의메모리공간 2 동적메모리할당의필요성 4.1 동적메모리할당 (1/6) 프로세스의메모리구조 코드영역 : 프로그램실행코드, 함수들이저장되는영역 스택영역 : 매개변수, 지역변수, 중괄호 ( 블록 ) 내부에정의된변수들이저장되는영역

More information

Microsoft PowerPoint - hw8.ppt [호환 모드]

Microsoft PowerPoint - hw8.ppt [호환 모드] 8.1 데이터경로와제어장치 Chapter 8 데이터경로와제어장치 많은순차회로의설계는다음의두부분으로구성 datapath: data의이동및연산을위한장치 control unit에상태신호제공 control ol unit: datapath th 에서적절한순서로 data 이동및연산을수행할수있도록제어신호제공. 먼저, datapath를설계 다음에, control unit

More information

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770>

<322EBCF8C8AF28BFACBDC0B9AEC1A6292E687770> 연습문제해답 5 4 3 2 1 0 함수의반환값 =15 5 4 3 2 1 0 함수의반환값 =95 10 7 4 1-2 함수의반환값 =3 1 2 3 4 5 연습문제해답 1. C 언어에서의배열에대하여다음중맞는것은? (1) 3차원이상의배열은불가능하다. (2) 배열의이름은포인터와같은역할을한다. (3) 배열의인덱스는 1에서부터시작한다. (4) 선언한다음, 실행도중에배열의크기를변경하는것이가능하다.

More information

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2

비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2 비트연산자 1 1 비트와바이트 비트와바이트 비트 (Bit) : 2진수값하나 (0 또는 1) 를저장할수있는최소메모리공간 1비트 2비트 3비트... n비트 2^1 = 2개 2^2 = 4개 2^3 = 8개... 2^n 개 1 바이트는 8 비트 2 2 진수법! 2, 10, 16, 8! 2 : 0~1 ( )! 10 : 0~9 ( )! 16 : 0~9, 9 a, b,

More information

untitled

untitled CAN BUS RS232 Line Ethernet CAN H/W FIFO RS232 FIFO IP ARP CAN S/W FIFO TERMINAL Emulator COMMAND Interpreter ICMP TCP UDP PROTOCOL Converter TELNET DHCP C2E SW1 CAN RS232 RJ45 Power

More information

°ø±â¾Ð±â±â

°ø±â¾Ð±â±â 20, 30, 40 20, 30, 40 1 2 3 4 5 6 7 8 9 10 3.1 6.3 9.4 12.6 15.7 18.8 22.0 25.1 28.3 31.4 2.4 4.7 7.1 9.4 11.8 14.1 16.5 18.8 21.2 23.6 7.1 14.1 21.2 28.3 35.3 42.4 49.5 56.5 63.6 70.7 5.9 11.9 17.8 23.7

More information

2 Mitsubishi FX Series Computer Link MITSUBISHI FX SERIES COMPUTER LINK 시스템구성 시스템설정 사용예 사용예 사용예

2 Mitsubishi FX Series Computer Link MITSUBISHI FX SERIES COMPUTER LINK 시스템구성 시스템설정 사용예 사용예 사용예 Mitsubishi FX Series Computer Link 2 Mitsubishi FX Series Computer Link MITSUBISHI FX SERIES COMPUTER LINK... 1 1. 시스템구성... 3 2. 시스템설정... 4 3. 사용예... 6 3.1. 사용예 1... 6 3.2. 사용예 2... 9 4. 케이블연결도... 13 4.1.

More information

SRC PLUS 제어기 MANUAL

SRC PLUS 제어기 MANUAL ,,,, DE FIN E I N T R E A L L O C E N D SU B E N D S U B M O TIO

More information

Microsoft PowerPoint - C++ 5 .pptx

Microsoft PowerPoint - C++ 5 .pptx C++ 언어프로그래밍 한밭대학교전자. 제어공학과이승호교수 연산자중복 (operator overloading) 이란? 2 1. 연산자중복이란? 1) 기존에미리정의되어있는연산자 (+, -, /, * 등 ) 들을프로그래머의의도에맞도록새롭게정의하여사용할수있도록지원하는기능 2) 연산자를특정한기능을수행하도록재정의하여사용하면여러가지이점을가질수있음 3) 하나의기능이프로그래머의의도에따라바뀌어동작하는다형성

More information

adfasdfasfdasfasfadf

adfasdfasfdasfasfadf C 4.5 Source code Pt.3 ISL / 강한솔 2019-04-10 Index Tree structure Build.h Tree.h St-thresh.h 2 Tree structure *Concpets : Node, Branch, Leaf, Subtree, Attribute, Attribute Value, Class Play, Don't Play.

More information

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi

[ 마이크로프로세서 1] 2 주차 3 차시. 포인터와구조체 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Functi 2 주차 3 차시포인터와구조체 학습목표 1. C 언어에서가장어려운포인터와구조체를설명할수있다. 2. Call By Value 와 Call By Reference 를구분할수있다. 학습내용 1 : 함수 (Function) 1. 함수의개념 입력에대해적절한출력을발생시켜주는것 내가 ( 프로그래머 ) 작성한명령문을연산, 처리, 실행해주는부분 ( 모듈 ) 자체적으로실행되지않으며,

More information

hd1300_k_v1r2_Final_.PDF

hd1300_k_v1r2_Final_.PDF Starter's Kit for HelloDevice 1300 Version 11 1 2 1 2 3 31 32 33 34 35 36 4 41 42 43 5 51 52 6 61 62 Appendix A (cross-over) IP 3 Starter's Kit for HelloDevice 1300 1 HelloDevice 1300 Starter's Kit HelloDevice

More information

C 언어 프로그래밊 과제 풀이

C 언어 프로그래밊 과제 풀이 과제풀이 (1) 홀수 / 짝수판정 (1) /* 20094123 홍길동 20100324 */ /* even_or_odd.c */ /* 정수를입력받아홀수인지짝수인지판정하는프로그램 */ int number; printf(" 정수를입력하시오 => "); scanf("%d", &number); 확인 주석문 가필요한이유 printf 와 scanf 쌍

More information

KNK_C_05_Pointers_Arrays_structures_summary_v02

KNK_C_05_Pointers_Arrays_structures_summary_v02 Pointers and Arrays Structures adopted from KNK C Programming : A Modern Approach 요약 2 Pointers and Arrays 3 배열의주소 #include int main(){ int c[] = {1, 2, 3, 4}; printf("c\t%p\n", c); printf("&c\t%p\n",

More information

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100

Microsoft PowerPoint - ch09 - 연결형리스트, Stack, Queue와 응용 pm0100 2015-1 프로그래밍언어 9. 연결형리스트, Stack, Queue 2015 년 5 월 4 일 교수김영탁 영남대학교공과대학정보통신공학과 (Tel : +82-53-810-2497; Fax : +82-53-810-4742 http://antl.yu.ac.kr/; E-mail : ytkim@yu.ac.kr) 연결리스트 (Linked List) 연결리스트연산 Stack

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 실습 1 배효철 th1g@nate.com 1 목차 조건문 반복문 System.out 구구단 모양만들기 Up & Down 2 조건문 조건문의종류 If, switch If 문 조건식결과따라중괄호 { 블록을실행할지여부결정할때사용 조건식 true 또는 false값을산출할수있는연산식 boolean 변수 조건식이 true이면블록실행하고 false 이면블록실행하지않음 3

More information

ADP-2480

ADP-2480 Mitsubishi PLC 접속 GP 는 Mitsubishi FX Series 와통신이가능합니다. 시스템구성 6 7 8 GP-80 RS- Cable RS-C Cable FXN--BD FXN--BD 6 FX Series(FXS,FXN,FXN,FXNC, FXU) 7 FXS, FXN 8 FXN FX Series 는기본적으로 RS- 통신을하며, RS-/ converter

More information

2 PX-8000과 RM-8000/LM-8000등의 관련 제품은 시스템의 간편한 설치와 쉬운 운영에 대한 고급 기술을 제공합니다. 또한 뛰어난 확장성으로 사용자가 요구하는 시스템을 손쉽게 구현할 수 있습니다. 메인컨트롤러인 PX-8000의 BGM입력소스를 8개의 로컬지

2 PX-8000과 RM-8000/LM-8000등의 관련 제품은 시스템의 간편한 설치와 쉬운 운영에 대한 고급 기술을 제공합니다. 또한 뛰어난 확장성으로 사용자가 요구하는 시스템을 손쉽게 구현할 수 있습니다. 메인컨트롤러인 PX-8000의 BGM입력소스를 8개의 로컬지 PX-8000 SYSTEM 8 x 8 Audio Matrix with Local Control 2 PX-8000과 RM-8000/LM-8000등의 관련 제품은 시스템의 간편한 설치와 쉬운 운영에 대한 고급 기술을 제공합니다. 또한 뛰어난 확장성으로 사용자가 요구하는 시스템을 손쉽게 구현할 수 있습니다. 메인컨트롤러인 PX-8000의 BGM입력소스를 8개의 로컬지역에

More information

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과

임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 임베디드시스템설계강의자료 6 system call 2/2 (2014 년도 1 학기 ) 김영진 아주대학교전자공학과 System call table and linkage v Ref. http://www.ibm.com/developerworks/linux/library/l-system-calls/ - 2 - Young-Jin Kim SYSCALL_DEFINE 함수

More information

BY-FDP-4-70.hwp

BY-FDP-4-70.hwp RS-232, RS485 FND Display Module BY-FDP-4-70-XX (Rev 1.0) - 1 - 1. 개요. 본 Display Module은 RS-232, RS-485 겸용입니다. Power : DC24V, DC12V( 주문사양). Max Current : 0.6A 숫자크기 : 58mm(FND Size : 70x47mm 4 개) RS-232,

More information

UI TASK & KEY EVENT

UI TASK & KEY EVENT 2007. 2. 5 PLATFORM TEAM 정용학 차례 CONTAINER & WIDGET SPECIAL WIDGET 질의응답및토의 2 Container LCD에보여지는화면한개 1개이상의 Widget을가짐 3 Container 초기화과정 ui_init UMP_F_CONTAINERMGR_Initialize UMP_H_CONTAINERMGR_Initialize

More information

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE

목차 BUG 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG ROLLUP/CUBE 절을포함하는질의는 SUBQUE ALTIBASE HDB 6.3.1.10.1 Patch Notes 목차 BUG-45710 문법에맞지않는질의문수행시, 에러메시지에질의문의일부만보여주는문제를수정합니다... 3 BUG-45730 ROUND, TRUNC 함수에서 DATE 포맷 IW 를추가지원합니다... 5 BUG-45760 ROLLUP/CUBE 절을포함하는질의는 SUBQUERY REMOVAL 변환을수행하지않도록수정합니다....

More information

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729>

<4D F736F F F696E74202D20B8B6C0CCC5A9B7CEC7C1B7CEBCBCBCAD202834C1D6C2F7207E2038C1D6C2F729> 8주차중간고사 ( 인터럽트및 A/D 변환기문제및풀이 ) Next-Generation Networks Lab. 외부입력인터럽트예제 문제 1 포트 A 의 7-segment 에초시계를구현한다. Tact 스위치 SW3 을 CPU 보드의 PE4 에연결한다. 그리고, SW3 을누르면하강 에지에서초시계가 00 으로초기화된다. 동시에 Tact 스위치 SW4 를 CPU 보드의

More information

-. Data Field 의, 개수, data 등으로구성되며, 각 에따라구성이달라집니다. -. Data 모든 의 data는 2byte로구성됩니다. Data Type는 Integer, Float형에따라다르게처리됩니다. ( 부호가없는 data 0~65535 까지부호가있는

-. Data Field 의, 개수, data 등으로구성되며, 각 에따라구성이달라집니다. -. Data 모든 의 data는 2byte로구성됩니다. Data Type는 Integer, Float형에따라다르게처리됩니다. ( 부호가없는 data 0~65535 까지부호가있는 Dong Yang E&P 인버터 Modbus Monitoring Protocol 2018. 08. 27 Sun Spec (Modbus-RTU) -. Modbus Protocol 각 Field에대한설명 Frame갂의구별을위한최소한의시갂 BaudRate 9600에서 1bit 젂송시갂은 Start 0.104msec, (3.5 character Times, 1 Character

More information

chap 5: Trees

chap 5: Trees 5. Threaded Binary Tree 기본개념 n 개의노드를갖는이진트리에는 2n 개의링크가존재 2n 개의링크중에 n + 1 개의링크값은 null Null 링크를다른노드에대한포인터로대체 Threads Thread 의이용 ptr left_child = NULL 일경우, ptr left_child 를 ptr 의 inorder predecessor 를가리키도록변경

More information

네트워크 설정

네트워크 설정 158. 내용 비고 제조사 기기명 통신모듈 MITSUBISHI MELSEC(GOLDSEC-M) AJ71E71(MJ71E71)/QJ71E71 통신방식 Ethernet 3 장참조 프로토콜 3E 통신프레임표시가능 1 장 8 쪽참조 쓰기후읽기가능 1 장 9 쪽참조 통신설정 1. 통신포트설정 소켓포트번호네트워크통신을위해지정된소켓포트번호를입력합니다. 값은 5000 에서

More information

MicrocontrollerAcademy_Lab_ST_040709

MicrocontrollerAcademy_Lab_ST_040709 Micro-Controller Academy Program Lab Materials STMicroelectronics ST72F324J6B5 Seung Jun Sang Sa Ltd. Seung Jun Sang Sa Ltd. Seung Jun Sang Sa Ltd. Seung Jun Sang Sa Ltd. Seung Jun Sang Sa Ltd. Seung Jun

More information

Visual Basic 반복문

Visual Basic 반복문 학습목표 반복문 For Next문, For Each Next문 Do Loop문, While End While문 구구단작성기로익히는반복문 2 5.1 반복문 5.2 구구단작성기로익히는반복문 3 반복문 주어진조건이만족하는동안또는주어진조건이만족할때까지일정구간의실행문을반복하기위해사용 For Next For Each Next Do Loop While Wend 4 For

More information

Microsoft PowerPoint - a10.ppt [호환 모드]

Microsoft PowerPoint - a10.ppt [호환 모드] Structure Chapter 10: Structures t and Macros Structure 관련된변수들의그룹으로이루어진자료구조 template, pattern field structure를구성하는변수 (cf) C언어의 struct 프로그램의 structure 접근 entire structure 또는 individual fields Structure는

More information

Chapter 4. LISTS

Chapter 4. LISTS 6. 동치관계 (Equivalence Relations) 동치관계 reflexive, symmetric, transitive 성질을만족 "equal to"(=) 관계는동치관계임. x = x x = y 이면 y = x x = y 이고 y = z 이면 x = z 동치관계를이용하여집합 S 를 동치클래스 로분할 동일한클래스내의원소 x, y 에대해서는 x y 관계성립

More information

Microsoft Word - PLC제어응용-2차시.doc

Microsoft Word - PLC제어응용-2차시.doc 과정명 PLC 제어응용차시명 2 차시. 접점명령 학습목표 1. 연산개시명령 (LOAD, LOAD NOT) 에대하여설명할수있다. 2. 직렬접속명령 (AND, AND NOT) 에대하여설명할수있다. 3. 병렬접속명령 (OR, OR NOT) 에대하여설명할수있다. 4.PLC의접점명령을가지고간단한프로그램을작성할수있다. 학습내용 1. 연산개시명령 1) 연산개시명령 (LOAD,

More information

untitled

untitled 1. Master-K / GLOFA 1.1.1 Master-K 시리얼 인터페이스 LG 산전 Master-K PLC 기종과 RS-232C/485 로 통신하는 방법을 알아봅니다. < 시스템 구성 > 본 기기와 Master-K PLC 를 시리얼 인터페이스로 연결하는 시스템 구성을 나타냅니 다. 외부기기 통신 유닛 케이블 본 기기 PMU K10S1, K10S, K100S

More information

Lab 3. 실습문제 (Single linked list)_해답.hwp

Lab 3. 실습문제 (Single linked list)_해답.hwp Lab 3. Singly-linked list 의구현 실험실습일시 : 2009. 3. 30. 담당교수 : 정진우 담당조교 : 곽문상 보고서제출기한 : 2009. 4. 5. 학과 : 학번 : 성명 : 실습과제목적 : 이론시간에배운 Singly-linked list를실제로구현할수있다. 실습과제내용 : 주어진소스를이용해 Singly-linked list의각함수를구현한다.

More information

Microsoft PowerPoint - chap-11.pptx

Microsoft PowerPoint - chap-11.pptx 쉽게풀어쓴 C 언어 Express 제 11 장포인터 컴퓨터프로그래밍기초 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습한다. 컴퓨터프로그래밍기초 2 포인터란? 포인터 (pointer): 주소를가지고있는변수 컴퓨터프로그래밍기초 3 메모리의구조 변수는메모리에저장된다. 메모리는바이트단위로액세스된다.

More information

Microsoft Word - STL_SCL_4판_목차.doc

Microsoft Word - STL_SCL_4판_목차.doc 목차 소개 1 1 SIMATIC S7-300/400 PLC 2 1.1 PLC 의구조.. 2 1.1.1 PLC 구성요소.. 2 1.1.2 S7-300 스테이션.. 3 1.1.3 S7-400 스테이션.. 5 1.1.4 Fault-Tolerant SIMATIC.. 6 1.1.5 안전 관련 SIMATIC.. 7 1.1.6 CPU 메모리영역.. 9 1.2 분산 I/O..

More information

제 11 장포인터 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다.

제 11 장포인터 유준범 (JUNBEOM YOO) Ver 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 제 11 장포인터 유준범 (JUNBEOM YOO) Ver. 2.0 jbyoo@konkuk.ac.kr http://dslab.konkuk.ac.kr 본강의자료는생능출판사의 PPT 강의자료 를기반으로제작되었습니다. 이번장에서학습할내용 포인터이란? 변수의주소 포인터의선언 간접참조연산자 포인터연산 포인터와배열 포인터와함수 이번장에서는포인터의기초적인지식을학습합니다.

More information

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각

JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 (   ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각 JAVA 프로그래밍실습 실습 1) 실습목표 - 메소드개념이해하기 - 매개변수이해하기 - 새메소드만들기 - Math 클래스의기존메소드이용하기 ( http://java.sun.com/javase/6/docs/api ) 문제 - 직사각형모양의땅이있다. 이땅의둘레, 면적과대각선의길이를계산하는메소드들을작성하라. 직사각형의가로와세로의길이는주어진다. 대각선의길이는 Math클래스의적절한메소드를이용하여구하라.

More information

CPX-E-EC_BES_C_ _ k1

CPX-E-EC_BES_C_ _ k1 CPX-E CPX-E-EC EtherCAT 8071155 2017-07 [8075310] CPX-E-EC CPX-E-EC-KO EtherCAT, TwinCAT (). :, 2 Festo CPX-E-EC-KO 2017-07 CPX-E-EC 1... 4 1.1... 4 1.2... 4 1.3... 4 1.4... 5 1.5... 5 2... 6 2.1... 6

More information

PowerPoint 프레젠테이션

PowerPoint 프레젠테이션 1. data-addressing mode CHAPTER 6 Addressing Modes 2. use of data-address mode to form assembly language statements 3. op of program memory address mode 4. use of program memory address mode to form assembly

More information

s SINUMERIK 840C Service and User Manual DATA SAVING & LOADING & & /

s SINUMERIK 840C Service and User Manual DATA SAVING & LOADING & & / SINUMERIK 840C Service and Uer Manual DATA SAVING & LOADING & & / / NC, RS232C /. NC NC / Computer link () Device ( )/PC / / Print erial Data input RS232C () Data output Data management FLOPPY DRIVE, FLOPPY

More information

0.1-6

0.1-6 HP-19037 1 EMP400 2 3 POWER EMP400 4 5 6 7 ALARM CN2 8 9 CN3 CN1 10 24V DC CN4 TB1 11 12 Copyright ORIENTAL MOTOR CO., LTD. 2001 2 1 2 3 4 5 1.1...1-2 1.2... 1-2 2.1... 2-2 2.2... 2-4 3.1... 3-2 3.2...

More information

Microsoft PowerPoint - 07_04_s7기초기술교육_simatic_manager_operation.ppt [호환 모드]

Microsoft PowerPoint - 07_04_s7기초기술교육_simatic_manager_operation.ppt [호환 모드] Simatic Manager Operation 참고문헌 : Programming with Step7(V5.4) Edition 03/2006 SIMATIC Manager 신규프로젝트작성 (New Project) SIMATIC Manager File 메뉴 New ( 단축키 CTRL + N) 기존에작업했던프로젝트 신규프로젝트이름입력 프로젝트저장경로 경로변경시 SIMATIC

More information

Microsoft PowerPoint - 13장_OB 블록.ppt

Microsoft PowerPoint - 13장_OB 블록.ppt OB (Organization Block) 블록 운영시스템 OB1 FC FB FB FC SFC System Functions SFB System Function Blocks 다른 OB File: PRO1_13E.1 차례 교육목표... 2 Organization Blocks 개요... 3 Warm Restart 와 Hot Restart 시의구동 OB... 4

More information

쉽게 풀어쓴 C 프로그래밍

쉽게 풀어쓴 C 프로그래밍 제 3 장함수와문자열 1. 함수의기본적인개념을이해한다. 2. 인수와매개변수의개념을이해한다. 3. 함수의인수전달방법 2가지를이해한다 4. 중복함수를이해한다. 5. 디폴트매개변수를이해한다. 6. 문자열의구성을이해한다. 7. string 클래스의사용법을익힌다. 이번장에서만들어볼프로그램 함수란? 함수선언 함수호출 예제 #include using

More information

BMP 파일 처리

BMP 파일 처리 BMP 파일처리 김성영교수 금오공과대학교 컴퓨터공학과 학습내용 영상반전프로그램제작 2 Inverting images out = 255 - in 3 /* 이프로그램은 8bit gray-scale 영상을입력으로사용하여반전한후동일포맷의영상으로저장한다. */ #include #include #define WIDTHBYTES(bytes)

More information

Windows 8에서 BioStar 1 설치하기

Windows 8에서 BioStar 1 설치하기 / 콘텐츠 테이블... PC에 BioStar 1 설치 방법... Microsoft SQL Server 2012 Express 설치하기... Running SQL 2012 Express Studio... DBSetup.exe 설정하기... BioStar 서버와 클라이언트 시작하기... 1 1 2 2 6 7 1/11 BioStar 1, Windows 8 BioStar

More information

ISP and CodeVisionAVR C Compiler.hwp

ISP and CodeVisionAVR C Compiler.hwp USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler http://www.avrmall.com/ November 12, 2007 Copyright (c) 2003-2008 All Rights Reserved. USBISP V3.0 & P-AVRISP V1.0 with CodeVisionAVR C Compiler

More information

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning

A Dynamic Grid Services Deployment Mechanism for On-Demand Resource Provisioning C Programming Practice (II) Contents 배열 문자와문자열 구조체 포인터와메모리관리 구조체 2/17 배열 (Array) (1/2) 배열 동일한자료형을가지고있으며같은이름으로참조되는변수들의집합 배열의크기는반드시상수이어야한다. type var_name[size]; 예 ) int myarray[5] 배열의원소는원소의번호를 0 부터시작하는색인을사용

More information

윈도우시스템프로그래밍

윈도우시스템프로그래밍 데이터베이스및설계 MySQL 을위한 MFC 를사용한 ODBC 프로그래밍 2012.05.10. 오병우 컴퓨터공학과금오공과대학교 http://www.apmsetup.com 또는 http://www.mysql.com APM Setup 설치발표자료참조 Department of Computer Engineering 2 DB 에속한테이블보기 show tables; 에러발생

More information

1 안전 기준

1 안전 기준 PROFIBUS S7-300 의 DP 모드 : DP 마스터와 DP 슬레이브 5 PROFIBUS S7-300 의 DP 모드 : DP 마스터와 DP 슬레이브 PROFIBUS DP 에서분산주변장치를사용하여간단하고성공적으로데이터교환을할수있습니다. 이장에는 SIMATIC S7-300을 DP 마스터와 인텔리젼트 (Intelligent) DP 슬레이브로작동하게해주는예제

More information

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx

Microsoft PowerPoint - chap02-C프로그램시작하기.pptx #include int main(void) { int num; printf( Please enter an integer "); scanf("%d", &num); if ( num < 0 ) printf("is negative.\n"); printf("num = %d\n", num); return 0; } 1 학습목표 을 작성하면서 C 프로그램의

More information

예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = B = >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = >> tf = (A==B) % A

예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = B = >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = >> tf = (A==B) % A 예제 1.1 ( 관계연산자 ) >> A=1:9, B=9-A A = 1 2 3 4 5 6 7 8 9 B = 8 7 6 5 4 3 2 1 0 >> tf = A>4 % 4 보다큰 A 의원소들을찾을경우 tf = 0 0 0 0 1 1 1 1 1 >> tf = (A==B) % A 의원소와 B 의원소가똑같은경우를찾을때 tf = 0 0 0 0 0 0 0 0 0 >> tf

More information