본문 바로가기
PLC/Siemens (S7)

SIEMENS STEP7 PLC Programing 기초 #5 ( 지멘스 S7 PLC 프로그래밍 기초, Simatic Manager Address 개념 )

by 쪼렙엔지니어 2022. 1. 17.
반응형

Simatic Manager Address : 절대어드레스 (Address), 심볼어드레스 (Symbol)

 

자 오늘은 Siemens Step7 PLC 5번째 시간으로

Address의 개념에 대해서 이야기 해 보려고 합니다.

먼저 메모리(Memory)에 대해 알아보겠습니다.

PLC도 컴퓨터인건 다들 잘 아시지요???

그렇기 때문에 모든 데이터는 0또는 1인 디지털로 처리가 됩니다.

음... 오늘 이 포스팅에서 이 내용을 자세히 다루기엔 너무 오래 걸릴것 같아서

아래 포스팅으로 대신 할께요.

https://mech19.tistory.com/10

 

PLC 메모리의 체계와 데이터의 단위

PLC의 기본 데이터 단위는 Bit(비트) 입니다. ​ 이 Bit라는 데이터 영역은 0 또는 1을 표현할 수 있습니다. 따라서 펌프나 팬에 달린 모터가 켜졌는지, 혹은 꺼졌는지를 표현할 수 있죠. 또는 모터를

mech19.tistory.com

https://mech19.tistory.com/13

 

PLC 데이터 단위 별 활용 예

지난시간에 PLC의 메모리를 사용하기 위해 데이터의 단위와 표현이 가능한 범위에 대해서 알아보았습니다. ​ 오늘은 이 데이터의 단위별로 PLC에서는 어떠한 데이터의 타입을 대입하여 사용 할

mech19.tistory.com

 

위 포스팅의 내용은 정말 중요합니다.

아무리 강조해도 지나침이 없을 정도죠.

 

위 내용은 PLC뿐 아니라 모든 디지털 기기들이 디지털 데이터를 수집하고, 처리할때

사용하는 공통된 내용입니다.

(물론 지멘스냐, 미쯔비시냐, AB냐, LS냐에 따라 조금씩 명칭이 다르긴 합니다.)

(그러나 주된 개념은 동일하기 때문에 절대 까먹으면 안됩니다.)

 

자 그럼 기본은 이해하셨다고 생각하고

이제 Siemens PLC S7-300 Step7의 내용으로 넘어가 보겠습니다.

 

 

 

1. STEP 7 기본 데이터 유형

먼저 데이터 유형에 대해서 알아보겠습니다.

아래 표를 참조해 주십시오.

bool 1 bit 0 or 1
byte 8 bit 0 ~ 255
word 16 bit 0 ~ 65,535
Dword 32 bit 0 ~ 4,294,967,295
char 8 bit 문자
S5time 16 bit 타이머
int 16 bit 정수 -32,768 ~ 32,767
Dint 32 bit 정수 -2,147,483,648 ~ 2,147,483,647
Real 32 bit 실수
Time 32 bit 시간
Date 16 bit 날짜
Time_of day 32 bit 해당일의 밀리초까지
TOD#00:00:00.000 ~
TOD#23:59:59.000

위 표가 의미하는 내용은

해당 데이터를 표현하기 위해서 필요한 메모리의 크기

나타냈습니다.

 

 

 

 

2. STEP 7 복합 데이터 유형

 

복합데이터 유형은 단일 또는 복합데이터 유형의 그룹으로 구성됩니다.

이 데이터 유형을 사용하면 프로그램에 적합한 프로그래머가 원하는

데이터 유형으로 작성할 수 있고,

이것으로 다량의 데이터를 조작하고 기호로 간단하게 처리 할 수 있습니다.

참고로 복합데이터 유형은 STEP7명령어로 모두 한꺼번에 처리 할 수 없고,

한번에 한 요소만 처리 할 수 있습니다.

그리고 복합데이터 유형의 변수는 전역데이터 블록에서 논리블록의 파라미터나

또는 로컬 변수로만 선언이 가능합니다.

DATE AND TIME
64 BIT
STRING
8 x (문자의 수 +2)
ARRAY
같은 데이터 유형의 그룹
사용자 정의
STRUCT
다른 데이터 유형의 그룹
사용자 정의
UDT
(User Defined Data Type)
사용자 정의로 구성된 템플릿
사용자 정의

 

일단은 이러한 복합데이터 유형이 있다는 것만 알고 계시고,

다른 포스팅에서 자세히 이야기 하고도록 하겠습니다.

이러한 데이터 구조를 우리는 Address(어드레스)를 부여하여

데이터의 저장, 이동, 계산에 사용 할 수 있습니다.

Address(어드레스)에는 절대어드레스와 심볼어드레스가 있는데

편의상 절대어드레스는 Address(어드레스),

심볼어드레스는 SYMBOL(심볼)로 부릅니다.

그럼 이제 하나씩 알아보겠습니다.

 

 

 

 

 

3. 절대어드레스 (Address)

절대어드레스는 사용자가 직접 지정하는 메모리의 주소 그 자체를 의미합니다.

물론 8bit process는 8bit크기의 address를 갖고

16bit processer는 16bit 크기의 address를 갖지만

그건 CPU자체에 접근할 때의 이야기이고,

우리는 PLC라는 플랫폼에서 약속된 메모리 주소형식을 따르면 됩니다.

어려우신가요??

좀 더 쉽게 얘기하자면

우리가 C언어로 Window 프로그램을 짠다고 가정을 하면

어떠한 데이터를 저장한 메모리의 주소(address)는

32bit 혹은 64bit가 됩니다.

(window에는 32bit와 64bit가 있지요? 그리고 주소값 자체도

데이터이기 때문에 어떤 지정된 크기의 메모리에 저장되는데

그게 32bit와 64bit 인 것입니다.)

이건 CPU Memory 자체에 접근하여 데이터를 핸들링(저장, 이동, 계산 등등)을

할때 프로그래밍 언어 (C, C++, 파이썬 등등)를 통하여

프로그래밍을 할 때 저렇게 되는 것이고,

우리는 CPU Memory 자체에 접근하는 것이 아닌

중간에 PLC Program(Simatic Manger)이 중계역할을 하기 때문에

PLC Program 안에서 정해진 규약에 맞는 Address(주소)를 사용하면 되는 것입니다.

살짝 이해가 가시나요?

그럼 절대어드레스의 체계에 대해서 알아보겠습니다.

디지털 입력 : I 0.0 , I 0.1, I 0.2...........

디지털 출력 : Q 0.0, Q 0.1, Q 0.2.........

 

아날로그 입력 : PIW 256, PIW 257, PIW 258.................

아날로그 출력 : PQW 256, PQW 257, PQW 258...........

내부 bit address : M 0.0, M 0.1....

내부 byte address : MB 0, MB 1, MB 2.................

내부 word address : MW 0, MW1, MW2.............

내부 double word address : MD 0, MD1, MD 2....................

타이머 address : T0, T1, T2......

카운터 address : C0, C1, C2....

데이터블록 bit address : DB번호.DBX0.1, DB번호.DBX0.2....

데이터블록 byte address : DB번호.DBB 0, DB번호.DBB 1, DB번호.DBB 2............

데이터블록 word address : DB번호.DBW 0, DB번호.DBW 1, DB번호.DBW 2..............

데이터블록 double word address : DB번호.DBD 0, DB번호.DBD 1, DB번호.DBD 2,,,,,,,,,,,,,,,,,,,,,,

*주)1 참고로 bit 번호는 0~7까지 입니다. (모두 공통사항)

위에서 언급한 디지털입력, 디지털출력, 아날로그입력, 아날로그출력은

실제로 PLC가 IO Card등을 통해 외부기기들과 연결되어

주고받는 전압이나 전류등의 데이터들의 address(어드레스) 입니다.

그리고 그 밑에 내부나 데이터블록 address들은 소프트웨어 적어로

PLC의 CPU내부에서 데이터의 저장이나 복사, 이동 계산등을 위해

생성된 데이터들의 address(어드레스) 입니다.

이제 다음은 심볼어드레스 입니다.

 

 

 

 

 

4. 심볼어드레스 (SYMBOL)

심볼어드레스는 말 그대로 address(주소)에 SYMBOL(심볼)을

부여한 호칭이라고 생각하시면 됩니다.

서울특별시 영등포구 여의도동 60번지에는 63빌딩이 있습니다.

택시를 타면 여의도동60번지로 가자고 해도 가고

63빌딩으로 가자고 해도 갈 수 있겠죠?

여기서

서울특별시 영등포구 여의도동 60번지가 address(어드레스)라면

63빌딩이 Symbol(심볼)이라고 생각하시면 됩니다.

프로그래밍을 할때 어드레스를 직접 써도 되고,

심볼을 써도 됩니다.

위와 같이 Address에 Symbol을 부여하여

프로그래머가 익숙한대로 편리하게 사용 하면 됩니다.

위의 상황에서 I0.0 adrdress의 Symbol은 SYSTEM_ON 입니다.

그리고 Symbol(심볼)은 Symbol Table에서 편집이 가능합니다.

Symbol(심볼)에는 전역심볼과 지역심볼이 있는데,

전역심볼은 한번 생성하면 해당 프로젝트 내 모든 블록, 모든 프로그램에서

다 사용 할 수 있는 반면에

지역심볼은 해당 블록, 해당 프로그램에서만

사용할 수 있습니다.

심볼의 저장, 편집 그리고 전역심볼과 지역심볼에 대해서는

나중에 따로 자세히 이야기 하겠습니다.

FB, FC등의 차이를 먼저 알아야 하기 때문에....

일단 오늘은 여기까지 맛보기로 어떤 느낌인지

감만 잡는걸로 하고,

다음 시간에 Block에 대한 개념을 공부한 뒤에

거기에 이어서 심볼에 대해서 다시 더 자세히 알아 보겠습니다.

 

아래 포스팅을 참조 부탁드립니다.



출처: https://mech19.tistory.com/108 [초보 엔지니어의 다락방]

 

SIEMENS STEP7 PLC Programing 기초 #6 ( 지멘스 S7 PLC 프로그래밍 기초, Simatic Manager Block 개념 1, OB, FC )

지멘스 PLC 블록 개념, Organization Block, Function 우리가 지난시간에는 Siemens PLC의 변수, 어드레스의 개념에 대해 알아보았습니다. 중요한 내용이니 못보신 분들은 아래 포스팅을 꼭 확인부탁드립니

mech19.tistory.com

 

제 블로그를 방문해 주셔서 감사합니다.

도움이 되셨다면 공감(좋아요) 부탁드리고,

댓글은 다른분들께도 좋은 정보일 수 있으니

공개로 부탁드립니다.

여러분의 작은 정성이 좋은 포스팅을 생산하는

힘이 된답니다. :)

감사합니다.

 

 

반응형

댓글