νŠΉμˆ˜ν”„λ‘œκ·Έλž¨ 등둝 및 νŽΈμ§‘

νŠΉμˆ˜ν”„λ‘œκ·Έλž¨ 등둝 및 νŽΈμ§‘

  1. ν”„λ‘œκ·Έλž¨μ—μ„œ μƒˆ ν”„λ‘œκ·Έλž¨ (N)을 μ„ νƒν•©λ‹ˆλ‹€.

Β 

  1. μƒˆ ν”„λ‘œκ·Έλž¨ μΆ”κ°€/μž‘μ„±μ„ ν•˜λ©΄ μ•„λž˜μ™€ 같은 ν”„λ‘œκ·Έλž¨ 블둝이 λ‚˜νƒ€λ‚©λ‹ˆλ‹€.

ν”„λ‘œκ·Έλž¨ 이름 : 이름을 μ •ν•΄μ€λ‹ˆλ‹€. μ΅œλŒ€ 12μžκΉŒμ§€ μž…λ ₯ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

Β 

ν”„λ‘œκ·Έλž¨ ID : ν”„λ‘œκ·Έλž¨ λ§ˆλ‹€ 각각의 IDλ₯Ό μ •ν•΄μ€λ‹ˆλ‹€.

Β 

ν”„λ‘œκ·Έλž¨ μ—¬μœ κ³΅κ°„ : CPU μƒνƒœκ°€ RUN쀑일 경우 특수 ν”„λ‘œκ·Έλž¨μ—μ„œ ν”„λ‘œν† μ½œμ„ νŽΈμ§‘ν•˜κ³ μž ν•  λ•Œ νŽΈμ§‘ κ°€λŠ₯ν•œ μ΅œλŒ€ μ‚¬μ΄μ¦ˆλ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€.

Β 

ν”„λ‘œκ·Έλž¨ μ’…λ₯˜ : ν˜„μž¬ λ“±λ‘ν•˜κ³ μž ν•˜λŠ” ν”„λ‘œκ·Έλž¨ μ’…λ₯˜λ₯Ό μ •ν•΄μ€λ‹ˆλ‹€. νŠΉμˆ˜ν”„λ‘œκ·Έλž¨ 선택

Β 

νŒŒλΌλ―Έν„° 등둝이 λλ‚¬μœΌλ©΄ [확인] λ²„νŠΌμ„ ν΄λ¦­ν•©λ‹ˆλ‹€.

Β 

Β 3, [확인]을 ν•˜λ©΄ ν”„λ‘œν† μ½œμ„ 등둝할 수 μžˆλŠ” λŒ€ν™”μƒμžκ°€ ν™œμ„±ν™”ν•©λ‹ˆλ‹€.

ν”„λ‘œν† μ½œμ„ 등둝할 수 μžˆλŠ” PROT.SPC 파일이 μƒμ„±λ©λ‹ˆλ‹€.

Β 

베이슀 : 톡신 μΉ΄λ“œ(CM1-SC0XX)κ°€ μž₯μ°©λ˜μ–΄ μžˆλŠ” 베이슀λ₯Ό μ„ νƒν•©λ‹ˆλ‹€.

Β 

슬둯 : 톡신 μΉ΄λ“œ(CM1-SC0XX)κ°€ μž₯μ°©λ˜μ–΄ μžˆλŠ” μŠ¬λ‘―μ„ μ„ νƒν•©λ‹ˆλ‹€. μŠ¬λ‘―μ€ CPUλͺ¨λ“ˆμ΄ μž₯착된 λ‹€μŒ μŠ¬λ‘―λΆ€ν„° μŠ¬λ‘―λ²ˆν˜Έκ°€ μ •ν•΄ μ§‘λ‹ˆλ‹€.

Β 

채널 : λ§ˆμŠ€ν„° 슬레이브 κ°„μ˜ 톡신 포트λ₯Ό μ„ νƒν•©λ‹ˆλ‹€.

Β 

톡신결과

솑신 : SEND λͺ…령없이 μžλ™ 솑신 μ£ΌκΈ°λ₯Ό μ„€μ •ν•˜μ—¬ 데이터λ₯Ό μ†‘μ‹ ν•˜λŠ” 경우 ν•΄λ‹Ή 번호의 λΉ„νŠΈμ— 솑신 성곡 / μ‹€νŒ¨λ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€. (톡신 κ²°κ³Ό : M0000)
솑신 성곡 : M0000의 ν”„λ ˆμž„ λ²ˆν˜Έμ— ν•΄λ‹Ήλ˜λŠ” λΉ„νŠΈλ₯Ό 1 Scan On ν•©λ‹ˆλ‹€.
솑신 μ‹€νŒ¨ : M0020의 ν”„λ ˆμž„ λ²ˆν˜Έμ— ν•΄λ‹Ήλ˜λŠ” λΉ„νŠΈλ₯Ό 1 Scan On ν•©λ‹ˆλ‹€.
μˆ˜μ‹  : μžλ™ 솑신 ν”„λ ˆμž„μ— λŒ€ν•΄ μˆ˜μ‹ ν”„λ ˆμž„μ΄ 솑신에 λŒ€ν•œ μˆ˜μ‹  ν”„λ ˆμž„μ— μ •μ˜ λ˜μ–΄ 있으면 μ •μ˜λœ μˆ˜μ‹  ν”„λ ˆμž„μ„ μ •μƒμ μœΌλ‘œ μˆ˜μ‹ ν•˜μ˜€λŠ”μ§€λ₯Ό λ‚˜νƒ€λƒ…λ‹ˆλ‹€. (톡신결과 λ©”λͺ¨λ¦¬ μ˜μ—­ : M0000)
μˆ˜μ‹  성곡: M0000의 ν”„λ ˆμž„ λ²ˆν˜Έμ— ν•΄λ‹Ήλ˜λŠ” λΉ„νŠΈλ₯Ό 1 Scan On ν•©λ‹ˆλ‹€.
μˆ˜μ‹  μ‹€νŒ¨: M0020의 ν”„λ ˆμž„ λ²ˆν˜Έμ— ν•΄λ‹Ήλ˜λŠ” λΉ„νŠΈλ₯Ό 1 Scan On ν•©λ‹ˆλ‹€.

번호

ν”„λ ˆμž„

μ£ΌκΈ°

솑신에 λŒ€ν•œ

μˆ˜μ‹ ν”„λ ˆμž„

μˆ˜μ‹ μ— λŒ€ν•œ

μ†‘μ‹ ν”„λ ˆμž„

톡신결과(M0000)

μ„±κ³΅μ‹œ

μ‹€νŒ¨μ‹œ

3

μ†‘μ‹ ν”„λ ˆμž„

50ms

번호 β€˜4’

-

-

-

4

μˆ˜μ‹ ν”„λ ˆμž„

-

-

-

M0004

M0024

7

μ†‘μ‹ ν”„λ ˆμž„

100ms

-

-

M0007

M0027

Β 

Β 

  1. ν”„λ ˆμž„ μΆ”κ°€ λ²„νŠΌμ„ μ„ νƒν•˜λ©΄ ν”„λ ˆμž„ νŽΈμ§‘μ„ ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

Β 

ν”„λ ˆμž„ 이름 : ν”„λ ˆμž„ 이름을 λ“±λ‘ν•©λ‹ˆλ‹€. (μ΅œλŒ€ 20자)

Β 

톡신방ν–₯ : ν˜„μž¬ λ“±λ‘ν•˜λŠ” ν”„λ ˆμž„μ΄ 솑신 ν”„λ ˆμž„μΈμ§€ μˆ˜μ‹  ν”„λ ˆμž„μΈμ§€ μ„ νƒν•©λ‹ˆλ‹€.

Β 

톡신주기 : PLC ν”„λ‘œκ·Έλž¨μ— 솑신 λͺ…λ Ή(SEND)없이 μ„€μ •λœ 톡신 μ£ΌκΈ°κ°€ 되면 μžλ™μœΌλ‘œ ν”„λ ˆμž„μ΄ μ†‘μ‹ λ©λ‹ˆλ‹€. 톡신 μ£ΌκΈ°κ°€ β€˜0’이면 SENDλͺ…령이 μžˆμ–΄μ•Όλ§Œ ν”„λ ˆμž„μ΄ μ†‘μ‹ λ©λ‹ˆλ‹€. 톡신 μ£ΌκΈ°λ₯Ό μ‚¬μš©ν•˜μ—¬ ν”„λ ˆμž„μ„ μ†‘μˆ˜μ‹  ν•˜λ©΄ PLC ν”„λ‘œκ·Έλž¨μ΄ ν•„μš”μ—†κ²Œ λ˜λ―€λ‘œ PLC ν”„λ‘œκ·Έλž¨μ„ μž‘μ„±ν•˜μ—¬μ•Ό ν•˜λŠ” λ²ˆκ±°λ‘œμ›€μ΄ μ—†μ–΄μ§‘λ‹ˆλ‹€.

Β 

솑신에 λŒ€ν•œ μˆ˜μ‹  ν”„λ ˆμž„ : 톡신방ν–₯이 μ†‘μ‹ ν”„λ ˆμž„μΈ 경우만 ν•΄λ‹Ήλ©λ‹ˆλ‹€. ν•΄λ‹Ή ν”„λ ˆμž„μ΄ μ†‘μ‹ λ˜κ³  솑신에 λŒ€ν•œ μˆ˜μ‹  ν”„λ ˆμž„μ— ν”„λ ˆμž„μ΄ λ“±λ‘λ˜μ–΄ μžˆλ‹€λ©΄ PLC ν”„λ‘œκ·Έλž¨μ— μˆ˜μ‹  λͺ…λ Ή(RECV) 없이 λ“±λ‘λœ ν”„λ ˆμž„μ„ μˆ˜μ‹  λŒ€κΈ° ν•©λ‹ˆλ‹€.

Β 

μˆ˜μ‹ ν›„ μžλ™ 솑신 ν”„λ ˆμž„ : 톡신방ν–₯이 μˆ˜μ‹ ν”„λ ˆμž„μΈ 경우만 ν•΄λ‹Ήλ˜λŠ”λ°, ν•΄λ‹Ή ν”„λ ˆμž„μ΄ μˆ˜μ‹ λ˜λ©΄ PLCν”„λ‘œκ·Έλž¨μ— 솑신 λͺ…λ Ή 없이 λ“±λ‘λœ μ†‘μ‹ ν”„λ ˆμž„μ΄ μžλ™μœΌλ‘œ μ†‘μ‹ λ©λ‹ˆλ‹€.

Β 

νŠΉμˆ˜λ°μ΄ν„° μ‹λ³„μ½”λ“œ μ‚¬μš© : 솑/μˆ˜μ‹  λ˜λŠ” ν”„λ ˆμž„μ˜ 데이터 μ€‘μ—μ„œ 특수 데이터λ₯Ό 식별해 λ‚΄λŠ” κΈ°λŠ₯μž…λ‹ˆλ‹€. μ†‘μˆ˜μ‹ λ˜λŠ” ν”„λ ˆμž„ 데이터쀑에 ν•΄λ‹Ή μ‹λ³„μžμ™€ 같은 λ¬Έμžκ°€ μžˆλŠ” 경우 νŠΉμˆ˜λ°μ΄ν„°μ— λ“±λ‘λœ 데이터가 μ‹λ³„λ¬Έμž λ‹€μŒμ— λΆ™μ–΄ μ†‘μˆ˜μ‹  λ©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, μ‹λ³„μžλ₯Ό 16μ§„μˆ˜ FDh둜 λ“±λ‘ν•˜κ³ , νŠΉμˆ˜λ°μ΄ν„°μ— FFhλ₯Ό λ“±λ‘ν•œ 경우 νŠΉμˆ˜λ°μ΄ν„°λŠ” μ΅œλŒ€ 4κ°œκΉŒμ§€ 등둝할 수 μžˆμŠ΅λ‹ˆλ‹€. λ§Œμ•½ νŠΉμˆ˜λ°μ΄ν„° 4κ°œκ°€ 등둝 λ˜μ–΄μžˆλ‹€λ©΄ μ‹λ³„λ¬Έμž λ‹€μŒμ— 4κ°œκ°€ λΆ™μ–΄ μ—°μ†μœΌλ‘œ 솑/μˆ˜μ‹ λ©λ‹ˆλ‹€.

Header

Length

Cmd

MSG

Checksum

FEh

03h

3Ch

3Fh

FD

Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β Β 

Header

Length

Cmd

MSG

Checksum

νŠΉμˆ˜λ°μ΄ν„°

FEh

03h

3Ch

3Fh

FDh

FFh

Β 

μ„Έκ·Έλ¨ΌνŠΈ μΆ”κ°€ : μ„Έκ·Έλ¨ΌνŠΈλ₯Ό μΆ”κ°€ν•¨μœΌλ‘œ ν•΄μ„œ ν”„λ ˆμž„μ΄ μž‘μ„±λ©λ‹ˆλ‹€. μ΅œλŒ€ 10 개의 μ„Έκ·Έλ¨ΌνŠΈλ₯Ό 등둝할 수 μžˆμŠ΅λ‹ˆλ‹€.

Β 

μ„Έκ·Έλ¨ΌνŠΈ νŽΈμ§‘ : μž‘μ„±λœ ν”„λ ˆμž„μ˜ μ„Έκ·Έλ¨ΌνŠΈλ“€μ„ νŽΈμ§‘ν•©λ‹ˆλ‹€.

Β 

μ„Έκ·Έλ¨ΌνŠΈ μ‚­μ œ : μž‘μ„±λœ ν”„λ ˆμž„μ˜ μ„Έκ·Έλ¨ΌνŠΈλ₯Ό μ‚­μ œν•©λ‹ˆλ‹€.

μœ„λ‘œ 이동 : μž‘μ„±λœ ν”„λ ˆμž„μ˜ μ„Έκ·Έλ¨ΌνŠΈλ“€μ˜ μœ„μΉ˜λ₯Ό λ°”κΎΈκ³ μž ν•  λ•Œ μ‚¬μš©ν•©λ‹ˆλ‹€. μ„ νƒλ˜μ–΄μ§„ μ„Έκ·Έλ¨ΌνŠΈλ₯Ό ν•œμΉΈμ”© μœ„λ‘œ μ΄λ™ν•©λ‹ˆλ‹€.

Β 

μ•„λž˜λ‘œ 이동 : μž‘μ„±λœ ν”„λ ˆμž„μ˜ μ„Έκ·Έλ¨ΌνŠΈλ“€μ˜ μœ„μΉ˜λ₯Ό λ°”κΎΈκ³ μž ν•  λ•Œ μ‚¬μš©ν•© λ‹ˆλ‹€. μ„ νƒλ˜μ–΄μ§„ μ„Έκ·Έλ¨ΌνŠΈλ₯Ό ν•œμΉΈμ”© μ•„λž˜λ‘œ μ΄λ™ν•©λ‹ˆλ‹€.

Β 

  1. ν”„λ ˆμž„μ„ μž‘μ„±ν•˜κΈ° μœ„ν•΄ μ„Έκ·Έλ¨ΌνŠΈ μΆ”κ°€λ₯Ό ν•©λ‹ˆλ‹€.

SEGMENT0

SEGMENT1

.....

SEGMENT8

SEGMENT9

Β 

Β 

μ„Έκ·Έλ¨ΌνŠΈ μœ ν˜•

  1. κ³ μ •κ°’

μž‘μ„±ν•˜κ³ μž ν•˜λŠ” ν”„λ ˆμž„μ€‘ λ°μ΄ν„°μ˜ λ³€ν™”κ°€ μ—†λŠ” κ³ μ •λœ 데이터λ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€. ASCIIλ˜λŠ” Binaryν˜•νƒœλ‘œ 값을 μ§€μ •ν•©λ‹ˆλ‹€. 데이터가 Binaryν˜•νƒœμΈ κ²½μš°μ—λŠ” 16μ§„ 숫자둜 μ§€μ •ν•˜λ©°, ν•œ Byte의 데이터λ₯Ό 2자리 16μ§„μˆ˜λ‘œ μ§€μ •ν•˜κ³ , μ•„μŠ€ν‚€ ν˜•νƒœμΈ κ²½μš°μ—λŠ” ν•œ λ¬Έμžκ°€ ν•œ Byte의 λ°μ΄ν„°λ‘œ μ·¨κΈ‰λ©λ‹ˆλ‹€.

[κ³ μ •κ°’ 데이터 솑신]

PLC

12345678

12345678

데이터 λ³€ν™˜

λ°”μ΄λ„ˆλ¦¬

μ•„μŠ€ν‚€

μƒλŒ€ κΈ°κΈ°

12345678

31 32 33 34 35 36 37 38

[κ³ μ •κ°’ 데이터 μˆ˜μ‹ ]

μƒλŒ€ κΈ°κΈ°

12345678

31 32 33 34 35 36 37 38

데이터 λ³€ν™˜

λ°”μ΄λ„ˆλ¦¬

μ•„μŠ€ν‚€

PLC

12345678

31 32 33 34 35 36 37 38

  1. 무 μ‹œ

μˆ˜μ‹ λ˜λŠ” λ°μ΄ν„°μ˜ 값에 관계없이 μ§€μ •λœ 길이만큼의 데이터λ₯Ό μˆ˜μ‹  ν›„ νκΈ°ν•˜λŠ” μ„Έκ·Έλ¨ΌνŠΈμž…λ‹ˆλ‹€. μˆ˜μ‹ ν”„λ ˆμž„μ—μ„œλ§Œ μ„€μ • κ°€λŠ₯ν•©λ‹ˆλ‹€. νŠΉμˆ˜λ°μ΄ν„° μ‹λ³„μ½”λ“œ μ μš©μ„ ν•˜κ²Œ 되면 νŠΉμˆ˜λ°μ΄ν„°μ˜ μ‹λ³„μžμ™€ 같은 λ¬Έμžκ°€ μ—°μ†ν•΄μ„œ μˆ˜μ‹ λ˜λŠ” 것을 μ‹λ³„ν•˜μ—¬ μ‹λ³„μž λ‹€μŒμ— μ˜€λŠ” 데이터λ₯Ό λ¬΄μ‹œν•΄ λ²„λ¦½λ‹ˆλ‹€.

길이가 255(bytes)둜 지정이 되면 λ’€ λ”°λ₯΄λŠ” μ„Έκ·Έλ¨ΌνŠΈκ°€ μˆ˜μ‹ λ  λ•Œ κΉŒμ§€ 길이와 관계없이 λ¬΄μ‹œ μ²˜λ¦¬λ©λ‹ˆλ‹€. λ”°λΌμ„œ, λ’€ λ”°λ₯΄λŠ” μ„Έκ·Έλ¨ΌνŠΈλŠ” λ°˜λ“œμ‹œ κ³ μ •κ°’ ν˜•νƒœμ˜ μ„Έκ·Έλ¨ΌνŠΈλ‘œ μ •μ˜λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€.

Β 

  1. λ©”λͺ¨λ¦¬ 링크

CPU의 λ©”λͺ¨λ¦¬μ— μ €μž₯λ˜μ–΄ μžˆλŠ” 데이터λ₯Ό μ§€μ •λœ 길이만큼 μ†‘μ‹ ν•˜κ±°λ‚˜, μˆ˜μ‹ λœ 데이터λ₯Ό μ§€μ •λœ 길이만큼 CPUλ©”λͺ¨λ¦¬ μ˜μ—­μ— μ €μž₯ν•˜λŠ” μ„Έκ·Έλ¨ΌνŠΈμž…λ‹ˆλ‹€. μ΅œλŒ€ 데이터 μ‚¬μ΄μ¦ˆλŠ” 250Byte μž…λ‹ˆλ‹€.

Β 

길이가 255(bytes)둜 지정이 되면 κ°€λ³€κΈΈμ΄ν˜• μ„Έκ·Έλ¨ΌνŠΈλ‘œ λ™μž‘λ©λ‹ˆλ‹€. 이 ν˜•νƒœμ˜ μ„Έκ·Έλ¨ΌνŠΈλŠ” ν”„λ ˆμž„μ˜ μ’…λ₯˜(솑/μˆ˜μ‹ )와 ASCII λ³€ν™˜ 방식에 따라 λ‹€μ†Œμ˜ λ™μž‘ 차이가 μžˆμŠ΅λ‹ˆλ‹€. μ•„λž˜μ˜ ASCII λ°μ΄ν„°λ³€ν™˜κ³Ό κ΄€λ ¨λœ λ‚΄μš©μ„ μ°Έμ‘° λ°”λžλ‹ˆλ‹€. μ΄λ•ŒλŠ” BCC 체크 즉, 였λ₯˜κ²€μ‚¬ 방식이 λ™μž‘μ„ ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

Β 

νŠΉμˆ˜λ°μ΄ν„° μ‹λ³„μ½”λ“œ μ μš©μ„ ν•˜κ²Œ 되면 νŠΉμˆ˜λ°μ΄ν„°μ˜ μ‹λ³„μžμ™€ 같은 λ¬Έμžκ°€ μ—°μ†ν•΄μ„œ μˆ˜μ‹ λ˜λŠ” 것을 μ‹λ³„ν•˜μ—¬ μ‹λ³„μž λ‹€μŒμ— μ˜€λŠ” 데이터λ₯Ό λ¬΄μ‹œν•΄ λ²„λ¦½λ‹ˆλ‹€. μ–΄λ“œλ ˆμŠ€μ—λŠ” 솑/μˆ˜μ‹ ν•  λ°μ΄ν„°μ˜ CPUλ©”λͺ¨λ¦¬ μ˜μ—­μ„ μ§€μ •ν•©λ‹ˆλ‹€. νŠΉμˆ˜λ°μ΄ν„° μ‹λ³„μ½”λ“œ μ μš©λ©λ‹ˆλ‹€.

Β 

  • μ•„μŠ€ν‚€(ASCII) λ°μ΄ν„°λ³€ν™˜

λ¬΄λ³€ν™˜(λ°”μ΄λ„ˆλ¦¬)

CPUλ©”λͺ¨λ¦¬ μ˜μ—­μ— μžˆλŠ” 데이터λ₯Ό λ³€ν™˜μ—†μ΄ κ·ΈλŒ€λ‘œ 솑/μˆ˜μ‹ ν•©λ‹ˆλ‹€.

Β 

κ°€λ³€κΈΈμ΄ν˜• μˆ˜μ‹  μ„Έκ·Έλ¨ΌνŠΈμΈ 경우 λ’€ λ”°λ₯΄λŠ” μ„Έκ·Έλ¨ΌνŠΈκ°€ μˆ˜μ‹ λ  λ•Œ κΉŒμ§€ μˆ˜μ‹ λ˜λŠ” λͺ¨λ“  데이터가 μ§€μ •λœ λ©”λͺ¨λ¦¬ μ˜μ—­μ— μ•„λž˜μ˜ κ·Έλ¦Όκ³Ό 같은 포멧으둜 μ €μž₯λ©λ‹ˆλ‹€. (λ’€ λ”°λ₯΄λŠ” μ„Έκ·Έλ¨ΌνŠΈλŠ” λ°˜λ“œμ‹œ κ³ μ •κ°’ ν˜•νƒœμ˜ μ„Έκ·Έλ¨ΌνŠΈλ‘œ μ •μ˜λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€.) λ©”λͺ¨λ¦¬μ˜ 첫 번째 μ›Œλ“œμ— μˆ˜μ‹ λœ μ„Έκ·Έλ¨ΌνŠΈ λ°μ΄ν„°μ˜ 길이(byte 수)κ°€ 기둝되고, κ·Έ 길이 만큼의 μ‹€μ œ μˆ˜μ‹ λ°μ΄ν„°κ°€ μ—°μ†λ˜μ–΄ μ €μž₯λ©λ‹ˆλ‹€. ν™€μˆ˜ byte 길이둜 μˆ˜μ‹ λ˜λ©΄ κ°€μž₯ λ§ˆμ§€λ§‰ λ°μ΄ν„°λŠ” μ›Œλ“œλ©”λͺ¨λ¦¬μ˜ μƒμœ„ κ°’μœΌλ‘œ μœ„μΉ˜λ¨μ„ μœ λ…ν•˜μ‹­μ‹œμ˜€.

Β 

Β 

μ†‘μ‹ ν”„λ ˆμž„μ— μ •μ˜λ˜λŠ” κ°€λ³€κΈΈμ΄ν˜• μ„Έκ·Έλ¨ΌνŠΈμΈ 경우 솑신 데이터가 μ €μž₯된 λ©”λͺ¨λ¦¬λŠ” μ•„λž˜μ™€ 같은 포멧으둜 μ€€λΉ„λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€. μ§€μ •λœ λ©”λͺ¨λ¦¬μ˜ 첫 μ›Œλ“œμ— 솑신할 μ„Έκ·Έλ¨ΌνŠΈ λ°μ΄ν„°μ˜ 길이(byte 수)κ°€ κΈ°λ‘λ˜μ–΄ μžˆμ–΄μ•Ό ν•˜κ³ , μ—°μ†ν•˜μ—¬ 솑신 데이터가 κ·Έ 길이만큼 μ €μž₯λ˜μ–΄ μžˆμ–΄μ•Ό ν•©λ‹ˆλ‹€. μ†‘μ‹ ν”„λ ˆμž„μ˜ κ²½μš°μ—λŠ” λ’€ λ”°λ₯΄λŠ” μ„Έκ·Έλ¨ΌνŠΈμ˜ μ’…λ₯˜μ— λŒ€ν•œ μ œμ•½μ€ μ—†μŠ΅λ‹ˆλ‹€. λ‹€λ§Œ, 솑신 λ°μ΄ν„°μ˜ 길이가 ν™€μˆ˜λ‘œ μ§€μ •λ˜μ–΄ μ΅œμ’… μ›Œλ“œ λ°μ΄ν„°μ˜ μΌλΆ€λ§Œ μ „μ†‘λ˜μ–΄μ•Ό ν•˜λŠ” 경우, ν•΄λ‹Ή μ›Œλ“œκ°’μ˜ μƒμœ„ λ°”μ΄νŠΈκ°€ 솑신됨을 μœ μ˜ν•˜μ‹­μ‹œμ˜€.

Β 

16μ§„ μ •μˆ˜

μ†‘μ‹ μ‹œ CPUλ©”λͺ¨λ¦¬ μ˜μ—­μ˜ 데이터λ₯Ό 16μ§„ ASCIIλ°μ΄ν„°λ‘œ λ³€ν™˜ν•˜μ—¬ μ†‘μ‹ ν•˜κ³ , μˆ˜μ‹ μ‹œ 16μ§„ ASCII데이터λ₯Ό λ°”μ΄λ„ˆλ¦¬ λ°μ΄ν„°λ‘œ λ³€ν™˜ν•˜μ—¬ CPU λ©”λͺ¨λ¦¬μ— μ €μž₯ν•©λ‹ˆλ‹€.

Β 

κ°€λ³€κΈΈμ΄ν˜• μ„Έκ·Έλ¨ΌνŠΈμΈ 경우 λ©”λͺ¨λ¦¬ μ˜μ—­μ„ μš΄μš©ν•˜λŠ” 포멧은 μ•žμ„œ μ„€λͺ…λœ λ¬΄λ³€ν™˜ λ°©μ‹μ˜ κ²½μš°μ™€ λ™μΌν•©λ‹ˆλ‹€. 솑신 μ„Έκ·Έλ¨ΌνŠΈμΈ 경우 μ‹€μ œ μ œμž‘λ˜λŠ” μ†‘μ‹ ν”„λ ˆμž„μ˜ κΈΈμ΄λŠ” λ©”λͺ¨λ¦¬μ˜ 선두에 기둝된 데이터 길이(byte 길이)의 두 배둜 계산될 수 μžˆμŠ΅λ‹ˆλ‹€. 1 byte의 데이터λ₯Ό 16μ§„μˆ˜ ASCII κ°’μœΌλ‘œ ν‘œν˜„ν•˜κΈ° μœ„ν•΄μ„œ 2 byte의 곡간이 ν•„μš”ν•˜κΈ° λ•Œλ¬Έμž…λ‹ˆλ‹€. λ˜ν•œ, μ˜ˆμ— 보인 바와 같이, 솑신 λ°μ΄ν„°μ˜ 길이가 ν™€μˆ˜λ‘œ μ§€μ •λ˜μ–΄ μ΅œμ’… μ›Œλ“œ λ°μ΄ν„°μ˜ μΌλΆ€λ§Œ μ „μ†‘λ˜μ–΄μ•Ό ν•˜λŠ” 경우, ν•΄λ‹Ή μ›Œλ“œκ°’μ˜ μƒμœ„ λ°”μ΄νŠΈκ°€ 솑신됨을 μœ μ˜ν•˜μ‹­μ‹œμ˜€.

Β 

10μ§„ μ •μˆ˜

μ†‘μ‹ μ‹œ CPUλ©”λͺ¨λ¦¬ μ˜μ—­μ˜ 데이터λ₯Ό 10μ§„ ASCIIλ°μ΄ν„°λ‘œ λ³€ν™˜ν•˜μ—¬ μ†‘μ‹ ν•˜κ³ , μˆ˜μ‹ μ‹œ 10μ§„ ASCII데이터λ₯Ό λ°”μ΄λ„ˆλ¦¬ λ°μ΄ν„°λ‘œ λ³€ν™˜ν•˜μ—¬ CPUλ©”λͺ¨λ¦¬μ— μ €μž₯ν•©λ‹ˆλ‹€.

Β 

κ°€λ³€κΈΈμ΄ν˜• μ„Έκ·Έλ¨ΌνŠΈμΈ 경우 λ©”λͺ¨λ¦¬ μ˜μ—­μ„ μš΄μš©ν•˜λŠ” 포멧은 μ•žμ„œ μ„€λͺ…λœ λ¬΄λ³€ν™˜ λ°©μ‹μ˜ κ²½μš°μ™€ λ™μΌν•©λ‹ˆλ‹€. λ‹€λ§Œ, μ†‘μ‹ λ°μ΄ν„°μ˜ 길이가 4λ₯Ό μ΄ˆκ³Όν•˜μ§€ μ•Šλ„λ‘ ν•˜μ‹­μ‹œμ˜€. 4 byte μ΄μƒμ˜ λ°μ΄ν„°λŠ” 10μ§„ ASCII둜 ν‘œν˜„ κ°€λŠ₯ν•œ λ²”μœ„λ₯Ό μ΄ˆκ³Όν•©λ‹ˆλ‹€. μ‹€μ œ μ œμž‘λ˜λŠ” μ†‘μ‹ ν”„λ ˆμž„μ˜ μ΅œλŒ€ κΈΈμ΄λŠ” 11 byte μž…λ‹ˆλ‹€. 즉, λΆ€ν˜Έ 포함 11자 μ΄λ‚΄μ˜ 길이둜 10μ§„ ASCII λ¬Έμžμ—΄ μ„Έκ·Έλ¨ΌνŠΈλ₯Ό κ΅¬μ„±ν•˜μ—¬ 솑신 ν”„λ ˆμž„μ„ μ œμž‘ν•©λ‹ˆλ‹€.

Β 

ν•œνŽΈ, 10μ§„ μ •μˆ˜ν˜• 가변길이 μˆ˜μ‹  μ„Έκ·Έλ¨ΌνŠΈμ˜ 경우, 데이터 길이 μ •λ³΄λŠ” 항상 4 byte둜 κ³ μ •λ©λ‹ˆλ‹€. 즉, μ•„λž˜μ˜ μ˜ˆμ™€ 같이 μˆ˜μ‹ λ°μ΄ν„°λ₯Ό DWORD λ°μ΄ν„°λ‘œ λ³€ν™˜ν•˜μ—¬ λ©”λͺ¨λ¦¬μ— μ €μž₯ν•©λ‹ˆλ‹€.

Β 

μ‹€μˆ˜(Float)

μ†‘μ‹ μ‹œ CPUλ©”λͺ¨λ¦¬ μ˜μ—­μ˜ 데이터λ₯Ό μŠ€μΌ€μΌλ§(배율.1-10000) 을 ν•΄μ„œ μ†‘μ‹ ν•˜κ³ , μˆ˜μ‹ μ‹œ μˆ˜μ‹ λ˜λŠ” 데이터λ₯Ό μŠ€μΌ€μΌλ§(배율.1-10000)을 ν•΄μ„œ CPUλ©”λͺ¨λ¦¬μ— μ €μž₯ν•©λ‹ˆλ‹€.

Β 

가변길이 ν˜•νƒœμ˜ 솑신 μ„Έκ·Έλ¨ΌνŠΈλ‘œ μ§€μ •λœ 경우 μŠ€μΌ€μΌλ§ 섀정값은 μ†Œμˆ˜μ  자리 μ΄ν•˜ 유효자리 수λ₯Ό μ§€μ •ν•˜λŠ” μš©λ„λ‘œ μ‚¬μš©λ©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄, μŠ€μΌ€μΌλ§ 값이 100으둜 μ§€μ •λ˜λ©΄ μ†Œμˆ˜μ  μ΄ν•˜ 두 자리, 10000으둜 μ§€μ •λ˜λ©΄ μ†Œμˆ˜μ  μ΄ν•˜ λ„€μžλ¦¬ κΉŒμ§€λ₯Ό μ˜λ―Έν•©λ‹ˆλ‹€. 솑신데이터 포멧은 선두에 데이터 길이 정보 1 μ›Œλ“œλ₯Ό μœ„μΉ˜μ‹œμΌœμ•Ό ν•˜κ³ , μ΄μ–΄μ„œ λΆ€λ™μ†Œμˆ˜μ  포멧의 데이터 1개(4 bytes)λ₯Ό κΈ°λ‘λ˜μ–΄μ•Ό ν•©λ‹ˆλ‹€. 이 λ•Œμ˜ 길이 μ •λ³΄λŠ” 의미 μ—†μŠ΅λ‹ˆλ‹€. (무쑰건 4 byte둜 처리 λ©λ‹ˆλ‹€)

Β 

가변길이 ν˜•νƒœμ˜ μˆ˜μ‹  μ„Έκ·Έλ¨ΌνŠΈλ‘œ μ§€μ •λœ 경우 μŠ€μΌ€μΌλ§ 섀정값은 의미λ₯Ό κ°–μ§€ μ•ŠμŠ΅λ‹ˆλ‹€. μˆ˜μ‹ λœ 10μ§„ ASCII둜 ν‘œν˜„λ˜μ–΄ μžˆλŠ” λΆ€λ™μ†Œμˆ˜μ  데이터λ₯Ό μ§€μ •λœ λ©”λͺ¨λ¦¬μ— μ•„λž˜μ˜ 포멧으둜 μ €μž₯ν•©λ‹ˆλ‹€. 이 λ•Œ, μ €μž₯λ˜λŠ” 길이 μ •λ³΄λŠ” 4 (bytes)둜 항상 μΌμ •ν•˜λ©°, μ—°μ†ν•˜μ—¬ μ €μž₯된 λ°μ΄ν„°μ˜ 포멧은 λΆ€λ™μ†Œμˆ˜μ  λ°μ΄ν„°μž…λ‹ˆλ‹€. 이 λ°μ΄ν„°λŠ” EMOV, EADD, FLT λ“± 각쒅 λΆ€λ™μ†Œμˆ˜μ  μ—°μ‚° λͺ…λ Ήμ–΄λ₯Ό μ‚¬μš©ν•˜μ—¬ μ²˜λ¦¬ν•  수 μžˆμŠ΅λ‹ˆλ‹€.

Β 

Β 

  • μ•„μŠ€ν‚€(ASCII) λ°μ΄ν„°λ³€ν™˜(F/W V1.62 이후)

λ¬΄λ³€ν™˜(λ°”μ΄λ„ˆλ¦¬)

CPU λ©”λͺ¨λ¦¬ μ˜μ—­μ— μžˆλŠ” 데이터λ₯Ό λ³€ν™˜μ—†μ΄ κ·ΈλŒ€λ‘œ 솑/μˆ˜μ‹ ν•©λ‹ˆλ‹€.

Β 

κ³ μ •κΈΈμ΄ν˜• μ„Έκ·Έλ¨ΌνŠΈμ˜ 경우 λ‹€μŒ μˆœμ„œλŒ€λ‘œ 데이터λ₯Ό λ³€ν™˜μ—†μ΄ μ²˜λ¦¬ν•©λ‹ˆλ‹€. μ„Έκ·Έλ¨ΌνŠΈμ˜ κΈΈμ΄λŠ” 11Byte둜, μ–΄λ“œλ ˆμŠ€λŠ” D0000으둜 μ„€μ •ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

Β 

[μ†‘μ‹ ν•˜λŠ” CPU λͺ¨λ“ˆ μΈ‘ D λ””λ°”μ΄μŠ€ μ˜μ—­]

image-20241128-041756.png

[솑신 ν”„λ ˆμž„]

image-20241128-041900.png
  • 고정길이가 ν™€μˆ˜λ‘œ μ§€μ •λœ 경우, λ§ˆμ§€λ§‰ WORD λ°μ΄ν„°μ˜ μƒμœ„ Byte만 μ†‘μ‹ λ©λ‹ˆλ‹€ .

Β 

[μˆ˜μ‹ ν•˜λŠ” CPU λͺ¨λ“ˆ μΈ‘ D λ””λ°”μ΄μŠ€ μ˜μ—­]

image-20241128-042137.png

κ°€λ³€κΈΈμ΄ν˜• μ„Έκ·Έλ¨ΌνŠΈμ˜ 경우 λ‹€μŒ μˆœμ„œλŒ€λ‘œ 데이터λ₯Ό λ³€ν™˜ 없이 μ²˜λ¦¬ν•©λ‹ˆλ‹€. λ°˜λ“œμ‹œ κ³ μ •κ°’ ν˜•νƒœμ˜ μ„Έκ·Έλ¨ΌνŠΈλ₯Ό 뒀에 μΆ”κ°€ν•΄μ•Ό ν•©λ‹ˆλ‹€. μ„Έκ·Έλ¨ΌνŠΈ κΈΈμ΄λŠ” 255 Byte둜, μ–΄λ“œλ ˆμŠ€λŠ” D0000으둜 μ„€μ •ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

Β 

[μ†‘μ‹ ν•˜λŠ” CPU λͺ¨λ“ˆ μΈ‘ D λ””λ°”μ΄μŠ€ μ˜μ—­]

image-20241128-042437.png
  • 첫번째 WORD 데이터가 κ°€λ³€κΈΈμ΄λ‘œ μ²˜λ¦¬λ©λ‹ˆλ‹€.

Β 

[솑신 ν”„λ ˆμž„]

image-20241128-042612.png
  • 가변길이가 ν™€μˆ˜λ‘œ μ§€μ •λœ 경우, λ§ˆμ§€λ§‰ WORD λ°μ΄ν„°μ˜ μƒμœ„ BYTE만 μ†‘μ‹ λ©λ‹ˆλ‹€.

Β 

[μˆ˜μ‹ ν•˜λŠ” CPU λͺ¨λ“ˆ μΈ‘ Dλ””λ°”μ΄μŠ€ μ˜μ—­]

image-20241128-042807.png

16μ§„ μ •μˆ˜

솑신 μ‹œ, CPUλ©”λͺ¨λ¦¬ μ˜μ—­μ˜ 데이터λ₯Ό 16μ§„ ASCII λ°μ΄ν„°λ‘œ λ³€ν™˜ν•˜μ—¬ μ†‘μ‹ ν•˜κ³ , μˆ˜μ‹  μ‹œ 16μ§„ ASCII 데이터λ₯Ό λ°”μ΄λ„ˆλ¦¬ λ°μ΄ν„°λ‘œ λ³€ν™˜ν•˜μ—¬ CPU λ©”λͺ¨λ¦¬μ— μ €μž₯ν•©λ‹ˆλ‹€.

Β 

κ³ μ • κΈΈμ΄ν˜• μ„Έκ·Έλ¨ΌνŠΈμ˜ 경우 λ‹€μŒ μˆœμ„œλŒ€λ‘œ 데이터λ₯Ό λ³€ν™˜ν•˜μ—¬ μ²˜λ¦¬ν•©λ‹ˆλ‹€. μ„Έκ·Έλ¨ΌνŠΈ κΈΈμ΄λŠ” 11Byte 둜, μ–΄λ“œλ ˆμŠ€λŠ” D0000으둜 μ„€μ •ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

Β 

[μ†‘μ‹ ν•˜λŠ” CPU λͺ¨λ“ˆ μΈ‘ D λ””λ°”μ΄μŠ€ μ˜μ—­]

Β 

image-20241128-043219.png

데이터 λ³€ν™˜ μ‹œ, λ‹€μŒ 과정을 거쳐 μ²˜λ¦¬λ©λ‹ˆλ‹€.

3132h -> '3' '1' '3' '2' -> 33h 31h 33h 32h (4 Byte)
3334h -> '3' '3' '3' '4' -> 33h 33h 33h 34h (4 Byte)
3536h -> '3' '5' '3' '6' -> 33h 35h 33h (3 Byte)

고정길이가 4의 배수둜 μ§€μ •λ˜μ§€ μ•Šμ€ 경우, λ§ˆμ§€λ§‰ WORD λ°μ΄ν„°μ˜ μΌλΆ€λ§Œ μ†‘μ‹ λ©λ‹ˆλ‹€. 1WORDλ‹Ή 4Byte둜 μ²˜λ¦¬λ©λ‹ˆλ‹€.

Β 

[솑신 ν”„λ ˆμž„]

image-20241128-043522.png

[μˆ˜μ‹ ν•˜λŠ” CPU λͺ¨λ‘˜ μΈ‘ Dλ””λ°”μ΄μŠ€ μ˜μ—­]

Β 

image-20241128-043633.png

κ°€λ³€κΈΈμ΄ν˜• μ„Έκ·Έλ¨ΌνŠΈμ˜ 경우 λ‹€μŒ μˆœμ„œλŒ€λ‘œ 데이터λ₯Ό λ³€ν™˜ν•˜μ—¬ μ²˜λ¦¬ν•©λ‹ˆλ‹€. λ°˜λ“œμ‹œ κ³ μ •κ°’ ν˜•νƒœμ˜ μ„Έκ·Έλ¨ΌνŠΈλ₯Ό 뒀에 μΆ”κ°€ν•΄μ•Όν•©λ‹ˆλ‹€. μ„Έκ·Έλ¨ΌνŠΈ κΈΈμ΄λŠ” 255Byte둜, μ–΄λ“œλ ˆμŠ€λŠ” D0000으둜 μ„€μ •ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

Β 

[μ†‘μ‹ ν•˜λŠ” CPU λͺ¨λ“ˆ μΈ‘ D λ””λ°”μ΄μŠ€ μ˜μ—­]

image-20241128-043851.png

첫번째 WORD 데이터가 κ°€λ³€κΈΈμ΄λ‘œ μ²˜λ¦¬λ©λ‹ˆλ‹€.
데이터 λ³€ν™˜ μ‹œ, λ‹€μŒ 과정을 거쳐 μ²˜λ¦¬λ©λ‹ˆλ‹€.
3132h -> '3' '1' '3' '2' -> 33h 31h 33h 32h (4 Byte)
3334h -> '3' '3' '3' '4' -> 33h 33h 33h 34h (4 Byte)
3536h -> '3' '5' '3' '6' -> 33h 35h 33h (3 Byte)
가변길이가 4의 배수둜 μ§€μ •λ˜μ§€ μ•Šμ€ 경우, λ§ˆμ§€λ§‰ WORD λ°μ΄ν„°μ˜ μΌλΆ€λ§Œ μ†‘μ‹ λ©λ‹ˆλ‹€.1 WORD λ‹Ή 4 Byte둜 μ²˜λ¦¬λ©λ‹ˆλ‹€.

[솑신 ν”„λ ˆμž„]

image-20241128-044231.png

[μˆ˜μ‹ ν•˜λŠ” CPU λͺ¨λ“ˆ μΈ‘ Dλ””λ°”μ΄μŠ€ μ˜μ—­]

image-20241128-044300.png

Β 

10μ§„ μ •μˆ˜

μ†‘μ‹ μ‹œ CPUλ©”λͺ¨λ¦¬ μ˜μ—­μ˜ 데이터λ₯Ό 10μ§„ ASCIIλ°μ΄ν„°λ‘œ λ³€ν™˜ν•˜μ—¬ μ†‘μ‹ ν•˜κ³ , μˆ˜μ‹ μ‹œ 10μ§„ ASCII데이터λ₯Ό λ°”μ΄λ„ˆλ¦¬ λ°μ΄ν„°λ‘œ λ³€ν™˜ν•˜μ—¬ CPUλ©”λͺ¨λ¦¬μ— μ €μž₯ν•©λ‹ˆλ‹€.

κ³ μ •κΈΈμ΄ν˜• μ„Έκ·Έλ¨ΌνŠΈμ˜ 경우 λ‹€μŒ μˆœμ„œλŒ€λ‘œ 데이터λ₯Ό λ³€ν™˜ν•˜μ—¬ μ²˜λ¦¬ν•©λ‹ˆλ‹€. μ„Έκ·Έλ¨ΌνŠΈ κΈΈμ΄λŠ” 11 Byte둜, μ–΄λ“œλ ˆμŠ€λŠ” D0000으둜 μ„€μ •ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

Β 

[μ†‘μ‹ ν•˜λŠ” CPU λͺ¨λ“ˆ μΈ‘ Dλ””λ°”μ΄μŠ€ μ˜μ—­]

image-20241128-045758.png

μ–΄λ“œλ ˆμŠ€ μ˜μ—­λΆ€ν„° μž…λ ₯된 1 WORD λ°μ΄ν„°λ§Œ μ²˜λ¦¬ν•©λ‹ˆλ‹€.
INTν˜•μœΌλ‘œ μŒμˆ˜κ°’μ„ μž…λ ₯ν•˜μ—¬λ„ UNITν˜•μœΌλ‘œ 데이터λ₯Ό μ²˜λ¦¬ν•©λ‹ˆλ‹€.
데이터 λ³€ν™˜ 이후 λ‚¨λŠ” μ—¬μœ  곡간은 선두뢀터 'sp'(20h)둜 μ±„μ›Œ μ†‘μ‹ ν•©λ‹ˆλ‹€.

데이터 λ³€ν™˜ μ‹œ, λ‹€μŒ 과정을 거쳐 μ²˜λ¦¬λ©λ‹ˆλ‹€.

-12345 (INTν˜•) -> 53191 (UINTν˜•) -> '5' '3' '1' '9' '1' -> 35h 33h 31h 39h 31h (5 Byte) ->
20h 20h 20h 20h 20h 20h 35h 33h 31h 39h 31h (11 Byte)

Β 

[솑신 ν”„λ ˆμž„]

image-20241128-045923.png

Β 

[μˆ˜μ‹ ν•˜λŠ” CPU λͺ¨λ“ˆ μΈ‘ D λ””λ°”μ΄μŠ€ μ˜μ—­]

Β 

image-20241128-050011.png

κ°€λ³€κΈΈμ΄ν˜• μ„Έκ·Έλ¨ΌνŠΈμ˜ 경우 λ‹€μŒ μˆœμ„œλŒ€λ‘œ 데이터λ₯Ό λ³€ν™˜ν•˜μ—¬ μ²˜λ¦¬ν•©λ‹ˆλ‹€. λ°˜λ“œμ‹œ κ³ μ •κ°’ ν˜•νƒœμ˜ μ„Έκ·Έλ¨ΌνŠΈλ₯Ό 뒀에 μΆ”κ°€ν•΄μ•Ό ν•©λ‹ˆλ‹€. μ„Έκ·Έλ¨ΌνŠΈ κΈΈμ΄λŠ” 255Byte둜, μ–΄λ“œλ ˆμŠ€λŠ” D0000으둜 μ„€μ •ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

Β 

[μ†‘μ‹ ν•˜λŠ” CPU λͺ¨λ“ˆ μΈ‘ Dλ””λ°”μ΄μŠ€ μ˜μ—­]

image-20241128-050127.png

μ–΄λ“œλ ˆμŠ€ μ˜μ—­λΆ€ν„° μž…λ ₯된 2 WORD λ°μ΄ν„°λ§Œ μ²˜λ¦¬ν•©λ‹ˆλ‹€.
INTν˜•μœΌλ‘œ μŒμˆ˜κ°’μ„ μž…λ ₯ν•˜μ—¬λ„ UNITν˜•μœΌλ‘œ 데이터λ₯Ό μ²˜λ¦¬ν•©λ‹ˆλ‹€.
데이터 λ³€ν™˜ 이후 λ‚¨λŠ” μ—¬μœ  곡간은 μƒλž΅ν•˜μ—¬ μ†‘μ‹ ν•©λ‹ˆλ‹€.
데이터 λ³€ν™˜ μ‹œ, λ‹€μŒ 과정을 거쳐 μ²˜λ¦¬λ©λ‹ˆλ‹€.
-12345 (INTν˜•) -> 53191 (UINTν˜•) -> '5' '3' '1' '9' '1' -> 35h 33h 31h 39h 31h (5 Byte)

Β 

[솑신 ν”„λ ˆμž„]

image-20241128-050211.png

[μˆ˜μ‹ ν•˜λŠ” CPU λͺ¨λ“ˆ μΈ‘ Dλ””λ°”μ΄μŠ€ μ˜μ—­]

image-20241128-050246.png

Β 

μ‹€μˆ˜(Float)

솑신 μ‹œ, CPU λ©”λͺ¨λ¦¬ μ˜μ—­μ˜ 데이터λ₯Ό μŠ€μΌ€μΌλ§(배율 1-10000)을 ν•΄μ„œ μ†‘μ‹ ν•˜κ³ , μˆ˜μ‹  μ‹œ, μˆ˜μ‹ λ˜λŠ” 데이터λ₯Ό μŠ€μΌ€μΌλ§(배율 1-10000)을 ν•΄μ„œ CPU λ©”λͺ¨λ¦¬μ— μ €μž₯ν•©λ‹ˆλ‹€.

Β 

κ³ μ •κΈΈμ΄ν˜• μ„Έκ·Έλ¨ΌνŠΈμ˜ 경우 λ‹€μŒ μˆœμ„œλŒ€λ‘œ 데이터λ₯Ό λ³€ν™˜ν•˜μ—¬ μ²˜λ¦¬ν•©λ‹ˆλ‹€. μ„Έκ·Έλ¨ΌνŠΈ κΈΈμ΄λŠ” 11Byte 둜, μ–΄λ“œλ ˆμŠ€λŠ” D0000으둜, μ†Œμˆ˜μ  자리수(μŠ€μΌ€μΌλ§)은 2(x100)으둜 μ„€μ •ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

Β 

[μ†‘μ‹ ν•˜λŠ” CPU λͺ¨λ“ˆ μΈ‘ D λ””λ°”μ΄μŠ€ μ˜μ—­]

image-20241128-050713.png

μ–΄λ“œλ ˆμŠ€ μ˜μ—­λΆ€ν„° μž…λ ₯된 2WORD λ°μ΄ν„°λ§Œ μ²˜λ¦¬ν•©λ‹ˆλ‹€.

μŒμˆ˜κ°’μ˜ 경우(-) λΆ€ν˜ΈκΉŒμ§€ μ²˜λ¦¬ν•©λ‹ˆλ‹€.

데이터 λ³€ν™˜ 이후 λ‚¨λŠ” μ—¬μœ  곡간은 선두뢀터 β€˜sp’(20h)둜 μ±„μ›Œ μ†‘μ‹ ν•©λ‹ˆλ‹€.

데이터 λ³€ν™˜ μ‹œ, λ‹€μŒ 과정을 거쳐 μ²˜λ¦¬λ©λ‹ˆλ‹€.

-123.456 -> '-' '1' '2' '3' '.' '4' '5' -> 2Dh 31h 32h 33h 2Eh 34h 35h (7 Byte) ->
20h 20h 20h 20h 2Dh 31h 32h 33h 2Eh 34h 35h (11 Byte)

Β 

[솑신 ν”„λ ˆμž„]

image-20241128-050844.png

Β 

[μˆ˜μ‹ ν•˜λŠ” CPU λͺ¨λ“ˆ μΈ‘ Dλ””λ°”μ΄μŠ€ μ˜μ—­]

image-20241128-050912.png

κ°€λ³€κΈΈμ΄ν˜• μ„Έκ·Έλ¨ΌνŠΈμ˜ 경우 λ‹€μŒ μˆœμ„œλŒ€λ‘œ 데이터λ₯Ό λ³€ν™˜ν•˜μ—¬ μ²˜λ¦¬ν•©λ‹ˆλ‹€. λ°˜λ“œμ‹œ κ³ μ •κ°’ ν˜•νƒœμ˜ μ„Έκ·Έλ¨ΌνŠΈλ₯Ό 뒀에 μΆ”κ°€ν•΄μ•Ό ν•©λ‹ˆλ‹€. μ„Έκ·Έλ¨ΌνŠΈ κΈΈμ΄λŠ” 255Byte둜, μ–΄λ“œλ ˆμŠ€λŠ” D0000으둜, μ†Œμˆ˜μ  자리수(μŠ€μΌ€μΌλ§)은 2(x100)둜 μ„€μ •ν•˜μ˜€μŠ΅λ‹ˆλ‹€.

Β 

[μ†‘μ‹ ν•˜λŠ” CPU λͺ¨λ“ˆ μΈ‘ Dλ””λ°”μ΄μŠ€ μ˜μ—­]

image-20241128-051112.png

μ–΄λ“œλ ˆμŠ€ μ˜μ—­λΆ€ν„° μž…λ ₯된 3 WORD λ°μ΄ν„°λ§Œ μ²˜λ¦¬ν•©λ‹ˆλ‹€.

μŒμˆ˜κ°’μ˜ 경우 -λΆ€ν˜ΈκΉŒμ§€ μ²˜λ¦¬ν•©λ‹ˆλ‹€.

데이터 λ³€ν™˜ 이후 λ‚¨λŠ” μ—¬μœ  곡간은 μƒλž΅ν•˜μ—¬ μ†‘μ‹ ν•©λ‹ˆλ‹€.

데이터 λ³€ν™˜ μ‹œ, λ‹€μŒ 과정을 거쳐 μ²˜λ¦¬λ©λ‹ˆλ‹€.

-123.456 -> '-' '1' '2' '3' '.' '4' '5' -> 2Dh 31h 32h 33h 2Eh 34h 35h (7 Byte)

Β 

[솑신 ν”„λ ˆμž„]

image-20241128-051317.png

Β 

[μˆ˜μ‹ ν•˜λŠ” CPU λͺ¨λ“ˆ μΈ‘ Dλ””λ°”μ΄μŠ€ μ˜μ—­]

image-20241128-051348.png

μˆ˜μ‹  μ‹œ, κ°€λ³€κΈΈμ΄λŠ” 항상 4둜 μ²˜λ¦¬λ©λ‹ˆλ‹€.

Β 

Β 

μ›Œλ“œ 데이터 상/ν•˜μœ„ κ΅ν™˜μ„ μ„ νƒν•˜κ²Œ 되면 솑/μˆ˜μ‹  λ˜λŠ” 데이터쀑 μƒμœ„ 1Byte 데이터와 ν•˜μœ„ 1Byte 데이터λ₯Ό κ΅ν™˜ν•©λ‹ˆλ‹€. 예λ₯Ό λ“€μ–΄ μ†‘μ‹ μ‹œ CPUλ©”λͺ¨λ¦¬ μ˜μ—­μ— μ €μž₯λ˜μ–΄ μžˆλŠ” 데이터가 h1234(ASC:1234)라 κ°€μ •ν•˜κ³ , μ›Œλ“œ 데이터 상/ν•˜μœ„ κ΅ν™˜μ„ ν•˜λ©΄ μ‹€μ œ μ†‘μ‹ λ˜λŠ” λ°μ΄ν„°λŠ” h3412(ASC:3421)κ°€ 되며, μˆ˜μ‹ μ‹œ μˆ˜μ‹ λ˜λŠ” 데이터가 h1234(ASC:1234)라 κ°€μ •ν•˜κ³ , μ›Œλ“œ 데이터 상/ν•˜μœ„ κ΅ν™˜μ„ ν•˜λ©΄ μ‹€μ œ μˆ˜μ‹ λ˜λŠ” 데이터 h3412(ASC:3412)κ°€ CPUλ©”λͺ¨λ¦¬μ— μ €μž₯λ©λ‹ˆλ‹€.

단, μ›Œλ“œ λ©”λͺ¨λ¦¬ 데이터 μ†‘μ‹ μ‹œ μƒμœ„ λ°”μ΄νŠΈ μ €μž₯된 데이터가 λ¨Όμ € μ†‘μ‹ λ˜λ©°, μ›Œλ“œ λ©”λͺ¨λ¦¬ 데이터 μˆ˜μ‹ μ‹œ μˆ˜μ‹ λœ λ°μ΄ν„°λŠ” μƒμœ„ λ°”μ΄νŠΈμ— λ¨Όμ € μ €μž₯λ©λ‹ˆλ‹€.

Β 

[λ©”λͺ¨λ¦¬ 링크 데이터 솑신]

PLC

1234h

1234h

1234h

1234h

데이터 λ³€ν™˜

λ¬΄λ³€ν™˜(λ°”μ΄λ„ˆλ¦¬)

16μ§„ μ •μˆ˜

10μ§„ μ •μˆ˜

μ‹€μˆ˜(μŠ€μΌ€μΌλ§:10)

μƒλŒ€κΈ°κΈ°

1234h

31323334

34363630

01D2h

Β 

[λ©”λͺ¨λ¦¬ 링크 데이터 μˆ˜μ‹ ]

μƒλŒ€κΈ°κΈ°

1234h

31323334

34363630

1234h

데이터 λ³€ν™˜

λ¬΄λ³€ν™˜(λ°”μ΄λ„ˆλ¦¬)

16μ§„ μ •μˆ˜

10μ§„ μ •μˆ˜

μ‹€μˆ˜(μŠ€μΌ€μΌλ§:10)

PLC

1234h

1234h

1234h

B608h

Β 

였λ₯˜κ²€μ‚¬ 방식

ν”„λ ˆμž„μ˜ 데이터가 μ˜¬λ°”λ₯΄κ²Œ 솑/μˆ˜μ‹ λ˜μ—ˆλŠ”μ§€ μ—λŸ¬κ²€μΆœ μ½”λ“œ 연산을 ν•©λ‹ˆλ‹€. λ‹€μ–‘ν•œ λ°©μ‹μ˜ μ—λŸ¬κ²€μΆœ μ½”λ“œμ—°μ‚°μ„ μ§€μ›ν•©λ‹ˆλ‹€. 특수 데이터 μ‹λ³„ν•©λ‹ˆλ‹€.

ν•œ ν”„λ ˆμž„μ—μ„œ λ©”λͺ¨λ¦¬λ§ν¬λ₯Ό κ°€λ³€ κΈΈμ΄ν˜• μ„Έκ·Έλ¨ΌνŠΈ μ‚¬μš©μ‹œλŠ” λ™μž‘ ν•˜μ§€ μ•ŠμŠ΅λ‹ˆλ‹€.

Β 

Β 

Β SUM : νŽΈμ§‘λœ ν”„λ ˆμž„μ„ μ„ νƒλœ μ˜μ—­ μ‹œμž‘λΆ€ν„° λκΉŒμ§€ Binary Sum을 ν•΄μ„œ μ„€μ • ν•œ 길이 (Byte)만큼 데이터λ₯Ό 솑/μˆ˜μ‹ ν•©λ‹ˆλ‹€. μ˜μ—­μ€ 였λ₯˜κ²€μ‚¬ μ˜μ—­(μ„Έκ·Έλ¨ΌνŠΈ λ²”μœ„)μ—μ„œ μ„€μ •ν•©λ‹ˆλ‹€. μ•„μŠ€ν‚€ 데이터 λ³€ν™˜μ— κ΄€ν•œ λ‚΄μš©μ€ λ©”λͺ¨λ¦¬ 링크 뢀뢄을 μ°Έκ³ λ°”λžλ‹ˆλ‹€.

SUM+MASK : νŽΈμ§‘λœ ν”„λ ˆμž„μ„ μ„ νƒλœ μ˜μ—­ μ‹œμž‘λΆ€ν„° λκΉŒμ§€ Binary Sum을 ν•˜κ³  λ§ˆμŠ€ν‚Ήκ°’(FFh)으둜 AND λ§ˆμŠ€ν‚Ήν•œ 데이터λ₯Ό μ„€μ •λœ 길이(Byte)만큼 솑/μˆ˜μ‹ ν•©λ‹ˆλ‹€. μ•„μŠ€ν‚€ 데이터 λ³€ν™˜μ— κ΄€ν•œ λ‚΄μš©μ€ λ©”λͺ¨λ¦¬ 링크 뢀뢄을 μ°Έκ³ λ°”λžλ‹ˆλ‹€.

XOR : νŽΈμ§‘λœ ν”„λ ˆμž„μ„ μ„ νƒλœ μ˜μ—­ μ‹œμž‘λΆ€ν„° λκΉŒμ§€ Binary OR을 ν•΄μ„œ μ„€μ •λœ 길이(Byte) 만큼 데이터λ₯Ό 솑/μˆ˜μ‹ ν•©λ‹ˆλ‹€. μ•„μŠ€ν‚€ 데이터 λ³€ν™˜μ— κ΄€ν•œ λ‚΄μš©μ€ λ©”λͺ¨λ¦¬ 링크 뢀뢄을 μ°Έμ‘°ν•˜μ‹­μ‹œμ˜€.

XOR+MASK : νŽΈμ§‘λœ ν”„λ ˆμž„μ„ μ„ νƒλœ μ˜μ—­ μ‹œμž‘λΆ€ν„° λκΉŒμ§€ Binary OR을 ν•˜κ³  λ§ˆμŠ€ν‚Ήκ°’(FFFFh)으둜 AND λ§ˆμŠ€ν‚Ήν•œ 데이터λ₯Ό μ„€μ •λœ 길이(Byte)만큼 솑/μˆ˜μ‹ ν•©λ‹ˆλ‹€. μ•„μŠ€ν‚€ 데이터 λ³€ν™˜μ— κ΄€ν•œ λ‚΄μš©μ€ λ©”λͺ¨λ¦¬ 링크 뢀뢄을 μ°Έμ‘°ν•˜μ‹­μ‹œμ˜€.

MUL : νŽΈμ§‘λœ ν”„λ ˆμž„μ„ μ„ νƒλœ μ˜μ—­ μ‹œμž‘λΆ€ν„° λκΉŒμ§€ Binary MUL을 ν•˜κ³ , μ„€μ •λœ 데이터 길이만큼 솑/μˆ˜μ‹ ν•©λ‹ˆλ‹€.

MUL+MASK : νŽΈμ§‘λœ ν”„λ ˆμž„μ„ μ„ νƒλœ μ˜μ—­ μ‹œμž‘λΆ€ν„° λκΉŒμ§€ Binary MUL을 ν•˜κ³  λ§ˆμŠ€ν‚Ήκ°’(FFFFh)으둜 AND λ§ˆμŠ€ν‚Ήν•œ 데이터λ₯Ό μ„€μ •λœ 길이(Byte)만큼 솑/μˆ˜μ‹ ν•©λ‹ˆλ‹€.

CRC16 : νŽΈμ§‘ν•œ ν”„λ ˆμž„μ„ μ„ νƒλœ μ˜μ—­ μ‹œμž‘λΆ€ν„° λκΉŒμ§€ CRC16계산에 μ˜ν•΄ λ‚˜μ˜¨ 데이터λ₯Ό μ„€μ •λœ 길이만큼 솑/μˆ˜μ‹  ν•©λ‹ˆλ‹€.

CRC16(MODBUS) : νŽΈμ§‘ν•œ ν”„λ ˆμž„μ„ μ„ νƒλœ μ˜μ—­ μ‹œμž‘λΆ€ν„° λκΉŒμ§€ CRC16 (MODBUS) 을 ν•©λ‹ˆλ‹€.

SUM의 1의 보수 : νŽΈμ§‘λœ ν”„λ ˆμž„μ„ μ„ νƒλœ μ˜μ—­ μ‹œμž‘λΆ€ν„° λκΉŒμ§€ Binary Sum을 ν•˜μ—¬ λ‚˜μ˜¨ 값에 1의 보수λ₯Ό μ·¨ν•΄ μ„€μ • ν•œ 길이 (Byte)만큼 데이터λ₯Ό 솑/μˆ˜μ‹ ν•©λ‹ˆλ‹€.

SUM의 2의 보수 : νŽΈμ§‘λœ ν”„λ ˆμž„μ„ μ„ νƒλœ μ˜μ—­ μ‹œμž‘λΆ€ν„° λκΉŒμ§€ Binary Sum을 ν•˜μ—¬ λ‚˜μ˜¨ 값에 2의 보수λ₯Ό μ·¨ν•΄ μ„€μ • ν•œ 길이 (Byte)만큼 데이터λ₯Ό 솑/μˆ˜μ‹ ν•©λ‹ˆλ‹€.

Β 

Β 

Β 

Β 

Β 

Β 

Β 

Β 

Β 

Β