1 제품소개및소프트웨어설치... 1 1.1 STEP 7 개요... 1 1.2 STEP 7 표준패키지... 6 1.3 STEP 7 V5.5 에서새로워진내용... 11 1.4 STEP 7 표준패키지의확장된사용... 13 1.4.1 엔지니어링도구... 15 1.4.2 런-타임소프트웨어... 17 14.3 HMI(Human Machine Interface)... 19 2 설치... 21 2.1 Automation License Manager... 21 2.1.1 Automation License Manager 를통한... 21 사용자권한 2.1.2 Automation License Manager 설치... 24 2.1.3 라이선스키관리안내... 25 2.2 STEP 7 설치... 26 2.2.1 설치절차... 28 2.2.2 PG/PC 인터페이스설정... 31 2.3 STEP 7 제거... 33 2.4 사용자권한... 33 2.4.1 Windows XP/Server 2003 에서... 33 사용자권한 2.4.2 MS Windows 7 에서사용자권한... 34 3 자동화개념익히기... 35 3.1 자동화프로젝트계획수립을위한기본절차... 35 3.2 프로세스를작업및영역들로분할... 36 3.3 개별기능적영역들설명... 38 3.4 입력, 출력및입 / 출력나열... 40 3.5 모터에대한 I/O 도표만들기... 40 3.6 밸브에대한 I/O 도표만들기... 41 3.7 안전요구사항구성... 42 3.8 필요한운영자표시및제어설명... 43 3.9 구성도표만들기... 44 i
4 프로그램구조설계의기본... 45 4.1 CPU 에서의프로그램들... 45 4.2 사용자프로그램에서의블록... 46 4.2.1 OB 및프로그램구조... 47 4.2.2 사용자프로그램에서호출계층... 53 4.2.3 블록종류... 55 4.2.3.1 주기적프로그램처리를... 55 위한 OB(OB1) 4.2.3.2 FC(Function)... 60 4.2.3.3 FB(Function Block)... 61 4.2.3.4 Instance DB... 64 4.2.3.5 공유 DB(Shared DB)... 67 4.2.3.6 SFB(System Function Block) 와... 68 SFC(System Function) 4.2.4 인터럽트-구동형프로그램처리를... 70 위한 OB 들 4.2.4.1 Time-of-Day 인터럽트 OB 들... 70 (OB10 OB17) 4.2.4.2 Time-Delay 인터럽트 OB 들... 72 (OB20 OB23) 4.2.4.3 주기적인터럽트 OB 들 (OB30 OB38)... 73 4.2.4.4 하드웨어인터럽트 OB 들... 75 (OB40 OB47) 4.2.4.5 Start-up OB 들 (OB100/OB101/OB102)... 76 4.2.4.6 백그라운드 OB(OB90)... 78 4.2.4.7 에러처리 OB 들 (OB70 OB87/OB121, OB122)... 80 5 시작및사용... 83 5.1 STEP 7 사용... 83 5.2 기본시작파라메타들을사용한 STEP 7 시작... 84 5.3 도움말기능호출... 86 5.4 오브젝트및오브젝트계층구조... 87 5.4.1 Project 오브젝트... 88 5.4.2 Library 오브젝트... 90 5.4.3 스테이션오브젝트... 91 5.4.4 프로그램가능모듈오브젝트... 93 5.4.5 S7/M7 Program 오브젝트... 95 5.4.6 블록폴더오브젝트... 97 5.4.7 소스파일폴더오브젝트... 100 5.4.8 스테이션이나 CPU 없는 S7/M7 프로그램... 101 5.5 사용자인터페이스및운영... 102 5.5.1 사용자인터페이스및운영... 102 5.5.2 윈도우배열... 103 ii
5.5.3 대화상자에서의요소들... 104 5.5.4 오브젝트생성및관리... 105 5.5.5 대화상자에서오브젝트선택... 111 5.5.6 세션메모리 (Session Memory)... 112 5.5.7 윈도우배열변경... 112 5.5.8 윈도우배열저장및복구... 113 5.6 키보드사용... 114 5.6.1 키보드제어... 114 5.6.2 메뉴에대한키조합... 114 5.6.3 커서이동을위한키조합... 116 5.6.4 텍스트선택을위한키조합... 118 5.6.5 온라인도움말접근을위한키조합... 118 5.6.6 윈도우사이의전환을위한키조합... 119 6 Project 구성및편집... 121 6.1 Project 구조... 121 6.2 접근제한에대해알아야할내용... 123 6.3 등록변경에대해알아야할내용... 126 6.4 외국어문자세트사용... 127 6.5 MS 윈도우언어설정... 130 6.6 Project 구성... 131 6.6.1 Project 만들기... 131 6.6.2 스테이션삽입... 133 6.6.3 S7/M7 Program 삽입... 134 6.7 Project 편집... 136 6.7.1 사용된소프트웨어패키지에... 137 Project 점검 6.7.2 다중언어문장관리... 137 6.7.2.1 다중언어문자의종류... 140 6.7.2.2 내보내기파일의구조... 141 6.7.2.3 로그파일에서의정보... 143 6.7.2.4 언어문자가설치되지않은사용자... 144 문장관리 6.7.2.5 번역을위한원문최적화... 145 6.7.2.6 번역절차최적화... 146 6.7.2.7 선택된언어에서문장숨기기... 147 6.7.3 이동용데이터저장장치로서의... 148 MMC(Micro Memory Card) 6.7.3.1 MMC 에대해알아야할내용... 148 6.7.3.2 이동식저정장치로서 MMC 사용... 150 6.7.3.3 메모리카드파일... 150 6.7.3.4 MMC 에 Project 데이터저장... 151 iii
7 STEP 7 의다른버전 Project 편집... 153 7.1 버전 2 Project 및 Library 편집... 153 7.2 이전버전의 STEP 7 으로만들어졌던 DP 슬레이브확장 7.3 이전버전의 STEP 7 으로현재구성편집... 153... 155 7.4 이전버전의 SIMATIC PC 구성추가... 156 7.5 최근 STEP 7 버전이나옵션패키지로구성된모듈표시... 158 8 심볼 (Symbol) 정의... 161 8.1 절대및심볼주소... 161 8.2 공유 ( 전역 ) 및로컬심볼... 163 8.3 공유 ( 전역 ) 및로컬심볼표시... 164 8.4 주소우선순위설정 ( 심볼 / 절대 )... 165 8.5 공유 ( 전역 ) 심볼테이블... 168 8.5.1 심볼테이블구조및구성요소들... 168 8.5.2 심볼테이블에서허용되는... 171 주소및데이터 8.5.3 심볼테이블에서미-완성이나중복되는심볼... 172 8.6 공유 ( 전역 ) 심볼입력... 173 8.6.1 심볼입력의일반적인조언... 173 8.6.2 대화상자에서단일공유심볼입력... 174 8.6.3 심볼테이블에서다중공유심볼... 175 입력 8.6.4 심볼에대한대 / 소문자사용... 176 8.6.5 심볼테이블내보내가 (Export) 와... 178 들여오기 (Import) 8.6.6 심볼테이블내보내가 (Export) 와... 179 들여오기 (Import) 를위한형식들 8.6.7 심볼테이블에서영역편집... 182 9 블록및라이브러리만들기... 183 9.1 편집방법선택... 183 9.2 프로그래밍언어선택... 184 9.2.1 LAD 프로그래밍언어... 186 9.2.2 FBD 프로그래밍언어... 187 9.2.3 STL 프로그래밍언어... 188 9.2.4 S7-SCL 프로그래밍언어... 189 iv
9.2.5 S7-Graph 프로그래밍언어 ( 순차제어 )... 190 9.2.6 S7-HiGraph 프로그래밍언어... 191 ( 상태그래프 ) 9.2.7 S7-CFC 프로그래밍언어... 192 9.3 블록만들기... 193 9.3.1 Blocks 폴더... 193 9.3.2 사용자정의데이터형 (UDT)... 194 9.3.3 블록속성... 195 9.3.4 블록길이표시... 198 9.3.5 블록비교... 199 9.3.6 재-결선 (Rewiring)... 202 9.4 라이브러리를사용한작업... 203 9.4.1 라이브러리의계층적구조... 205 9.4.2 표준라이브러리 (Standard Library) 의개요... 205 10 로직블록생성의기본사항... 207 10.1 로직블록생성의기본사항... 207 10.1.1 프로그램에디터윈도우의구조... 207 10.1.2 로직블록생성을위한기본절차... 209 10.1.3 LAD/STL/FBD 프로그램에디터에 210 대한기본설정 10.1.4 블록및소스파일에대한접근권한... 210 10.1.5 Program Elements 탭에서의명령어들... 211 10.2 변수선언편집... 212 10.2.1 로직블록에서변수선언사용... 212 10.2.2 변수상세보기와코드영역사이의... 213 상호작용 10.2.3 변수선언윈도우의구조... 214 10.3 변수선언에서의다중 Instance... 215 10.3.1 다중 Instance 사용... 215 10.3.2 다중 Instance 선언규칙... 216 10.3.3 변수선언에서다중 Instance 입력... 216 10.4 문장및주석문입력에대한... 217 일반사항 10.4.1 코드영역의구조... 217 10.4.2 문장입력절차... 218 10.4.3 프로그램에공유심볼입력... 219 10.4.4 블록및 Network 에대한제목... 219 및주석문 10.4.5 블록및 Network 주석문입력... 221 10.4.6 Network 템플릿을사용한작업... 221 10.4.7 코드영역에서에러에대한검색기능... 222 10.5 코드영역에서 LAD 프로그래밍... 223... v
10.5.1 LAD 로직프로그래밍을위한설정... 223 10.5.2 LAD 로직구성을요소들입력을... 224 위한규칙 10.5.3 LAD 에서잘못된로직연산... 226 10.6 코드영역에서 FBD 프로그래밍... 227 10.6.1 FBD 프로그래밍을위한설정... 227 10.6.2 FBD 구성요소들입력을위한규칙... 228 10.7 코드영역에서 STL 문장편집... 230 10.7.1 STL 프로그래밍을위한설정... 230 10.7.2 STL 문장입력을위한규칙... 230 10.8 블록호출갱신... 231 10.8.1 인터페이스변경... 232 10.9 로직블록저장... 233 11 데이터블록만들기... 235... 11.1 데이터블록생성의기본정보... 235 11.2 데이터블록의선언화면... 236 11.3 데이터블록의데이터화면... 237 11.4 데이터블록편집및저장... 238 11.4.1 공유데이터블록의데이터... 238 구조입력 11.4.2 FB 를참조하는데이터블록... 239 (Instance DB) 의데이터구조입력및표시 11.4.3 사용자정의데이터형 (UDT) 의... 241 데이터구조입력 11.4.4 UDT 를참조하는데이터블록의... 242 데이터구조입력및표시 11.4.5 데이터화면에서데이터값입력... 243 11.4.6 초기값으로데이터값리세트... 243 11.4.7 데이터블록저장... 244 12 데이터블록에파라메타지정... 245 12.1 Technological 기능에파라메타지정... 246 13 STL 소스파일만들기... 247... 13.1 STL 소스파일에서의프로그래밍에... 247 대한기본정보 13.2 STL 소스파일에서프로그래밍규칙... 248 13.2.1 STL 소스파일에서문장입력규칙... 248 13.2.2 STL 소스파일에서변수선언규칙... 249 13.2.3 STL 소스파일에서블록순서규칙... 250 13.2.4 STL 소스파일에서시스템속성설정규칙... 250 vi
13.2.5 STL 소스파일에서블록속성설정규칙 13.2.6 블록종류에대해허용되는블록속성... 251... 253 13.3 STL 소스파일에서블록의구조... 254 13.3.1 STL 소스파일에서로직블록의구조... 254 13.3.2 STL 소스파일에서데이터블록의... 255 구조 13.3.3 STL 소스파일에서 UDT 의구조... 255 13.4 STL 소스파일에서블록에대한... 256 문법및형식 13.4.1 OB 의형식표... 256 13.4.2 FB 의형식표... 257 13.4.3 FC 의형식표... 258 13.4.4 DB 의형식표... 259 13.5 STL 소스파일만들기... 260 13.5.1 STL 소스파일만들기... 260 13.5.2 S7 소스파일편집... 260 13.5.3 소스코드텍스트의형태설정... 261 13.5.4 STL 소스파일에서블록... 261 템플릿 (Template) 삽입 13.5.5 다른 STL 소스파일의내용삽입... 261 13.5.6 STL 소스파일에존재하는... 262 블록으로부터소스코드삽입 13.5.7 다른 STL 소스파일의내용삽입... 262 13.5.8 블록으로부터 STL 소스파일생성... 263 13.5.9 소스파일들여오기 (Import0... 263 13.5.10 소스파일내보내기 (Export)... 263 13.6 STL 소스파일저장과컴파일및... 264 일치성점검 13.6.1 STL 소스파일저장... 264 13.6.2 STL 소스파일에서일치성점검... 264 13.6.3 STL 소스파일디버그... 264 13.6.4 STL 소스파일컴파일... 265 13.7 STL 소스파일의예... 266 13.7.1 STL 소스파일에서변수선언의예... 266 13.7.2 STL 소스파일로된 OB 의예... 267 13.7.3 STL 소스파일로된 FC 의예... 269 13.7.4 STL 소스파일로된 FB 의예... 272 13.7.5 STL 소스파일로된 DB 의예... 275 13.7.6 STL 소스파일로된 UDT 의예... 276 14 참조데이터 (Reference Data) 표시... 277 14.1 사용가능한참조데이터의개요... 277 14.1.1 상호-참조리스트 (Cross-Reference List)... 279 14.1.2 프로그램구조 (Program Structure)... 280 vii
14.1.3 지정리스트 (Assignment List)... 282 14.1.4 미-사용심볼 (Unused Symbols)... 284 14.1.5 심볼없는주소... 285 (Addresses without Symbols) 14.1.6 Lad, FBD 및 STL 에대한블록정보표시... 285 14.2 참조데이터를사용한작업... 286 14.2.1 참조데이터표시방법... 286 14.2.2 추가적인작업윈도우에서... 286 리스트들표시 14.2.3 참조데이터생성및표시... 287 14.2.4 프로그램에서주소위치빨리찾기... 288 14.2.5 주소위치를사용한작업의예... 289 15 블록일관성점검및블록속성으로서의시간기록... 293 15.1 블록일관성점검... 293 15.2 블록속성으로서시간기록및시간기록충돌... 295 15.3 로직블록에서의시간기록... 296... 15.4 공유데이터블록에서시간기록... 297 15.5 Instance DB 에서시간기록... 297 15.6 UDT 와 UDT 에기인한 DB 에서시간기록... 298 15.7 FC, FB 및 UDT 에서인터페이스수정... 298 15.8 블록을호출할때에러회피... 299 16 메시지구성... 301 16.1 메시지개념... 301 16.1.1 메시지를만드는방법... 301 16.1.2 메시지방법선택... 303 16.1.3 SIMATIC 구성요소들... 305 16.1.4 메시지부분들... 306 16.1.5 사용가능한메시지블록들... 307 16.1.6 형식파라메타, 시스템속성및... 309 메시지블록들 16.1.7 메시지종류및메시지들... 310 16.1.8 메시지-종류블록들로부터... 312 STL 소스파일생성방법 16.1.9 메시지변호지정... 312 16.1.10 Project-지향과 CPU-지향메시지번호... 313 지정의차이 16.1.11 Project 의메시지번호지정수정에대한옵션... 314... viii
16.2 Project-지향메시지구성... 315 16.2.1 Project-지향메시지번호지정방법... 315 16.2.2 블록-관련메시지지정및편집... 315 16.2.2.1 블록-관련메시지생성방법... 316 (Project-지향) 16.2.2.2 블록-관련메시지편집방법... 318 (Project-지향) 16.2.2.3 PCS 7 메시지구성방법... 319 (Project-지향) 16.2.3 심볼-관련메시지지정및편집... 320 16.2.3.1 심볼-관련메시지지정및편집방법... 320 (Project-지향) 16.2.4 사용자정의진단메시지생성및편집... 321 16.3 CPU-지향메시지구성... 322 16.3.1 CPU-지향메시지번호지정방법... 322 16.3.2 블록-관련메시지지정및편집... 323 16.3.2.1 블록-관련메시지생성방법... 323 (CPU-지향) 16.3.2.2 블록-관련메시지편집방법... 326 (CPU-지향) 16.3.2.3 PCS 7 메시지구성방법 (CPU-지향)... 326 16.3.3 심볼-관련메시지지정및편집... 328 16.3.3.1 심볼-관련메시지지정및편집방법... 328 (CPU-지향) 16.3.4 사용자정의진단메시지생성및편집... 329 16.4 메시지편집에대한조언... 330 16.4.1 메시지관련값추가... 330 16.4.2 텍스트라이브러리의텍스트를... 333 메시지로통합 16.4.3 관련값삭제... 333 16.5 운영자관련텍스트번역및편집... 334 16.5.1 사용자텍스트번역및편집... 334 16.6 텍스트라이브러리번역및편집... 336 16.6.1 사용자텍스트라이브러리... 336 16.6.2 사용자텍스트라이브러리생성... 336 16.6.3 사용자텍스트라이브러리편집방법... 337 16.6.4 시스템텍스트라이브러리... 337 16.6.5 텍스트라이브러리번역... 338 16.7 PLC 에메시지구성데이터전송... 340 16.7.1 PLC 에구성데이터전송... 340 16.8 CPU 메시지및사용자-정의진단... 341 메시지표시 16.8.1 CPU 메시지구성... 344 16.8.2 저장된 CPU 메시지들표시... 344 ix
16.9 Reporting of System Errors 구성... 345 16.9.1 Reporting of System Errors 개요... 345 16.9.2 Reporting of System Errors 구성... 345 16.9.3 지원되는구성요소와기능범위... 347 16.9.4 Report System Error 에대한설정... 351 16.9.5 Report System Error 에대한... 353 블록생성 16.9.6 발생된에러 OB 들... 354 16.9.7 발생되는블록들... 356 16.9.8 에러클래스에시스템에러지정... 358 16.9.9 Report System Error 에서외국어메시지텍스트발생... 360 x