Tcopen: ์˜ˆ์ œ ์‹œํ€€์„œ ๋กœ์ง์€ ๋‹ค์Œ ๋‹จ๊ณ„๋กœ ๋„˜์–ด๊ฐ€๊ธฐ ์œ„ํ•ด ๋ˆ„๋ฝ๋œ ์กฐ๊ฑด์„ ์•Œ๊ณ  ์žˆ์Šต๋‹ˆ๊นŒ?

์— ๋งŒ๋“  2021๋…„ 05์›” 04์ผ  ยท  8์ฝ”๋ฉ˜ํŠธ  ยท  ์ถœ์ฒ˜: TcOpenGroup/TcOpen

์•ˆ๋…•ํ•˜์„ธ์š”:
์•Œ๋ ค์ง„ ์‹œํ€€์„œ ๋…ผ๋ฆฌ์˜ ์˜ˆ์—์„œ ๋‹ค์Œ ๋‹จ๊ณ„๋กœ ์ง„ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋ˆ„๋ฝ๋œ ์กฐ๊ฑด์€ ๋ฌด์—‡์ž…๋‹ˆ๊นŒ?
๊ณ ๋งˆ์›Œ, ๋น…ํ† ๋ฅด.

question

๊ฐ€์žฅ ์œ ์šฉํ•œ ๋Œ“๊ธ€

@RGrabichler๋ฅผ ๊ณต์œ ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ๋‚˜๋Š” ๋‹น์‹ ์˜ ๋””์ž์ธ์„ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค. ๋งค์šฐ ๊น”๋”ํ•ด ๋ณด์ž…๋‹ˆ๋‹ค. ์ด๋ฒคํŠธ ๋กœ๊ฑฐ๋ฅผ TcOpen ๋ฉ”์‹œ์ง•์— ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

๋‹ค์Œ ๋งํฌ๋ฅผ ๊ฐ„๋‹จํžˆ ์‚ดํŽด๋ณด์‹ญ์‹œ์˜ค. ๋‹ค์Œ ์ฃผ์— ๋” ์ž์„ธํžˆ ๋…ผ์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐœ๋…์ 

๋ฌผ์ฒด

๋ฉ”์‹ ์ € ,

C# ๋ฌธ์„œ์ฒ˜๋Ÿผ ๋ณด์ธ๋‹ค๋Š” ์ ์„ ๋ฌด์‹œํ•˜์„ธ์š”. ์ง€๊ธˆ์€ ํšŒ์› ๋ฌธ์„œ๋งŒ ์‚ดํŽด๋ณด์„ธ์š”.

์•”ํ˜ธ

๊ฐ์‚ฌ ํ•ด์š”

๋ชจ๋“  8 ๋Œ“๊ธ€

์ •ํ™•ํžˆ ์–ด๋–ค ์˜ˆ๊ฐ€ ์–ด๋–ค ํด๋”์— ์žˆ๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ? ๋ณด๊ณ  ์žˆ๋Š” ์˜ˆ์ œ์˜ ๊ตฌ์„ฑ ์š”์†Œ์—์„œ ๋ฉ”์‹œ์ง•์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

์ •ํ™•ํžˆ ์–ด๋–ค ์˜ˆ๊ฐ€ ์–ด๋–ค ํด๋”์— ์žˆ๋Š”์ง€ ํ™•์‹คํ•˜์ง€ ์•Š์Šต๋‹ˆ๊นŒ? ๋ณด๊ณ  ์žˆ๋Š” ์˜ˆ์ œ์˜ ๊ตฌ์„ฑ ์š”์†Œ์—์„œ ๋ฉ”์‹œ์ง•์„ ๊ตฌํ˜„ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

https://www.youtube.com/watch?v=yCUv2LW-6zo

์˜ˆ์ œ ๋กœ์ง ์‹œํ€€์„œ

์•„ํ•˜... ์ผ๋ถ€ ๋””๋ฒ„๊ทธ ๋ฉ”์‹œ์ง€๊ฐ€ ์žˆ์ง€๋งŒ ๊ตฌ์„ฑ ์š”์†Œ์— ๊ตฌํ˜„๋œ ์ „์ฒด ์ง„๋‹จ์ด ์•„๋‹ˆ๋ผ ๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๊ณต์•• ์‹ค๋ฆฐ๋”๋กœ ์ด๋™ํ•˜๋Š” ๊ฒฝ์šฐ ํƒ€์ด๋จธ๋ฅผ ์ž‘๋™ ์‹œ๊ฐ„ ์ดˆ๊ณผ ์‹œ๊ฐ„์— ์ถ”๊ฐ€ํ•˜๊ณ  ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

IF timer.Q THEN Messenger.Error('I did not reach the extremity sensor'); END_IF;

๋ฌผ๋ฆฌ์  ์ž…๋ ฅ(์„ผ์„œ, ๋‹ค๋ฅธ inxton ๋น„๋””์˜ค์—์„œ ๋ณด์•˜์„ ์ˆ˜ ์žˆ์Œ)์„ ๊ฐ์ง€ํ•˜๋ ค๋ฉด ํ† ๋ก  #15์—์„œ ๊ฒฐ์ •์„ ๋‚ด๋ ค์•ผ ํ•ฉ๋‹ˆ๋‹ค.

์•„ํ•˜... ์ผ๋ถ€ ๋””๋ฒ„๊ทธ ๋ฉ”์‹œ์ง€๊ฐ€ ์žˆ์ง€๋งŒ ๊ตฌ์„ฑ ์š”์†Œ์— ๊ตฌํ˜„๋œ ์ „์ฒด ์ง„๋‹จ์ด ์•„๋‹ˆ๋ผ ๊ตฌํ˜„ํ•ด์•ผ ํ•˜๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค. ์˜ˆ๋ฅผ ๋“ค์–ด ๊ณต์•• ์‹ค๋ฆฐ๋”๋กœ ์ด๋™ํ•˜๋Š” ๊ฒฝ์šฐ ํƒ€์ด๋จธ๋ฅผ ์ž‘๋™ ์‹œ๊ฐ„ ์ดˆ๊ณผ ์‹œ๊ฐ„์— ์ถ”๊ฐ€ํ•˜๊ณ  ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

IF timer.Q THEN Messenger.Error('I did not reach the extremity sensor'); END_IF;

๋ฌผ๋ฆฌ์  ์ž…๋ ฅ(์„ผ์„œ, ๋‹ค๋ฅธ inxton ๋น„๋””์˜ค์—์„œ ๋ณด์•˜์„ ์ˆ˜ ์žˆ์Œ)์„ ๊ฐ์ง€ํ•˜๋ ค๋ฉด ํ† ๋ก  #15์—์„œ ๊ฒฐ์ •์„ ๋‚ด๋ ค์•ผ ํ•ฉ๋‹ˆ๋‹ค.

๊ฐ€์žฅ ์„ฑ๊ณต์ ์ธ ๊ฒƒ์€ ๊ตฌ์„ฑ ์š”์†Œ ์ž์ฒด์— ์ž์ฒด ์˜ค๋ฅ˜ ์ง„๋‹จ์ด ์žˆ๋‹ค๋Š” ๊ฒƒ์ž…๋‹ˆ๋‹ค.

์ €๋Š” ์ด ์ผ์— ๋งค์šฐ ๊ด€์‹ฌ์ด ์žˆ์œผ๋ฉฐ ์ž๋™ํ™”์— ๋Œ€ํ•œ ์ง€์‹์„ ๋„“ํž ์ˆ˜ ์žˆ๋Š” ์ด ์ ‘๊ทผ ๋ฐฉ์‹์„ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค.
์™œ๋ƒํ•˜๋ฉด ๋‚ด๊ฐ€ ํ•˜๋Š” ๋ชจ๋“  ๊ฒƒ์€ ๋…ํ•™์ด๊ณ , ์˜ค๋ฅด๊ธฐ ํž˜๋“  ์‚ฐ์ด๊ธฐ ๋•Œ๋ฌธ์ž…๋‹ˆ๋‹ค.
๊ทธ๋Ÿฐ ๊ฑธ ์ฝ์„ ๋•Œ๋งˆ๋‹ค ๋‚ด๊ฐ€ ์–ผ๋งˆ๋‚˜ ๋ชจ๋ฅด๊ณ  ๋ฌธ์ œ๋ฅผ ํŒŒ์•…์กฐ์ฐจ ํ•  ์ˆ˜ ์—†๋Š”์ง€ ๊นจ๋‹ซ๊ฒŒ ๋ฉ๋‹ˆ๋‹ค.

๊ทธ๋Ÿผ์—๋„ ๋ถˆ๊ตฌํ•˜๊ณ  ๋‚˜๋Š” ๊ธฐ์—ฌํ•˜๋ ค๊ณ  ๋…ธ๋ ฅํ•ฉ๋‹ˆ๋‹ค.
๋‚˜๋Š” ์ง„๋‹จ๊ณผ ํ•จ๊ป˜ ๋‚ด ์ž์‹ ์˜ ์‹ค๋ฆฐ๋” fb๋ฅผ mageํ–ˆ๊ณ  ๋‚˜๋Š” ๊ทธ๊ฒƒ์„ ์„ค๋ช…ํ•  ๊ฒƒ์ด๋‹ค.
image.png
In- ๋ฐ Outputs %Q /%I ๋Š” dut์—์„œ ์„ ์–ธ๋˜๊ณ  ํ•˜๋“œ์›จ์–ด์— ๋Œ€ํ•œ ๋งํฌ๋Š”
image.png
https://github.com/TcOpenGroup/TcOpen/discussions/15 ๋ฅผ ์ฐธ์กฐํ•˜์‹ญ์‹œ์˜ค.

๋‚˜๋Š” ์ž‘์€ fbs์ธ ๋‹ค์–‘ํ•œ ์†Œ์œ„ ๊ธฐ๋Šฅ์„ ๊ฐ€์ง€๊ณ  ์žˆ์Šต๋‹ˆ๋‹ค. ๊ทธ๋“ค์€ ๊ฐ„๋‹จํ•œ ์ž‘์—…์„ ๊ตฌํ˜„ํ•˜๊ณ  ๋‚˜์ค‘์— ์˜ˆ๋ฅผ ๋“ค์–ด ์‹ค๋ฆฐ๋” ๋˜๋Š” ๋ชจํ„ฐ์™€ ๊ฐ™์€ ๊ตฌ์„ฑ ์š”์†Œ๋กœ ์กฐ๋ฆฝํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๋‚ด FB Cyl์€ ์ถ”์ƒ ํด๋ž˜์Šค Actuator์—์„œ ํŒŒ์ƒ๋ฉ๋‹ˆ๋‹ค. ์ธํ„ฐํŽ˜์ด์Šค IactionProviding์„ ์‚ฌ์šฉํ•˜๋ฉด ์˜ค๋ฅ˜ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•œ ๋ฉ”์„œ๋“œ์™€ pEventid, pSeverity ๋“ฑ์„ ์„ค์ •ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
image.png

์ด์ œ ์‹ค๋ฆฐ๋”๋ฅผ ์ธ์Šคํ„ด์Šคํ™”ํ•  ๋•Œ WorkPos ๋ฐ/๋˜๋Š” HomePos์— timeOut์„ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
์‹œ๊ฐ„์ด ์„ค์ •๋˜๊ณ  ์‹œ๊ฐ„ ์ดˆ๊ณผ๊ฐ€ ๋ฐœ์ƒํ•˜๋ฉด TCEventHandling ์‹œ์Šคํ…œ์„ ํ†ตํ•ด ์ด๋ฒคํŠธ๊ฐ€ ์ƒ์„ฑ๋ฉ๋‹ˆ๋‹ค.

image.png

์ด๊ฒƒ์ด ์ง„๋‹จ๋ฒ•์ด๋‹ค
image.png

์ด๊ฒƒ์ด ํฅ๋ฏธ๋กญ๊ฑฐ๋‚˜ ์œ ์šฉํ•˜๋‹ค๋ฉด ํ”ผ๋“œ๋ฐฑ์„ ์ฃผ์‹œ๋ฉด ๊ฐ์‚ฌํ•˜๊ฒ ์Šต๋‹ˆ๋‹ค.

@RGrabichler๋ฅผ ๊ณต์œ ํ•ด ์ฃผ์…”์„œ ๊ฐ์‚ฌํ•ฉ๋‹ˆ๋‹ค! ๋‚˜๋Š” ๋‹น์‹ ์˜ ๋””์ž์ธ์„ ์ข‹์•„ํ•ฉ๋‹ˆ๋‹ค. ๋งค์šฐ ๊น”๋”ํ•ด ๋ณด์ž…๋‹ˆ๋‹ค. ์ด๋ฒคํŠธ ๋กœ๊ฑฐ๋ฅผ TcOpen ๋ฉ”์‹œ์ง•์— ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์„ ๊ณ ๋ คํ•˜์‹œ๊ฒ ์Šต๋‹ˆ๊นŒ?

๋‹ค์Œ ๋งํฌ๋ฅผ ๊ฐ„๋‹จํžˆ ์‚ดํŽด๋ณด์‹ญ์‹œ์˜ค. ๋‹ค์Œ ์ฃผ์— ๋” ์ž์„ธํžˆ ๋…ผ์˜ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

๊ฐœ๋…์ 

๋ฌผ์ฒด

๋ฉ”์‹ ์ € ,

C# ๋ฌธ์„œ์ฒ˜๋Ÿผ ๋ณด์ธ๋‹ค๋Š” ์ ์„ ๋ฌด์‹œํ•˜์„ธ์š”. ์ง€๊ธˆ์€ ํšŒ์› ๋ฌธ์„œ๋งŒ ์‚ดํŽด๋ณด์„ธ์š”.

์•”ํ˜ธ

๊ฐ์‚ฌ ํ•ด์š”

๊ทธ๋Ÿฐ ํ”„๋กœ์ ํŠธ์— ๊ธฐ์—ฌํ•˜๊ณ  ์‹ถ์Šต๋‹ˆ๋‹ค.
์•ž์„œ ์–ธ๊ธ‰ํ–ˆ๋“ฏ์ด ์ €๋Š” ๋‹ค๋ฅธ ์‚ฌ๋žŒ๋“ค๊ณผ ํ•จ๊ป˜ ๋” ํฐ ํ”„๋กœ์ ํŠธ๋ฅผ ์ˆ˜ํ–‰ํ•œ ๊ฒฝํ—˜์ด ๊ฑฐ์˜ ์—†์Šต๋‹ˆ๋‹ค.
๊ทธ๋ž˜์„œ ์ดˆ๊ธฐ์— ๋งŽ์€ ์ง€๋„๊ฐ€ ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค.

@RGrabichler ์ €๋Š” ๊ดœ์ฐฎ์Šต๋‹ˆ๋‹ค... ์ €๋Š” ์šฐ๋ฆฌ ๋ชจ๋‘๊ฐ€ ๊ทธ ๊ณผ์ •์—์„œ ๋ฐฐ์šฐ๊ฒŒ ๋  ๊ฒƒ์ด๋ผ๊ณ  ์ƒ๊ฐํ•ฉ๋‹ˆ๋‹ค. GH๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์‚ฐ์—… ์ž๋™ํ™”์—๋Š” ์•ฝ๊ฐ„์˜ ์ „ํ†ต์ด ์žˆ์Šต๋‹ˆ๋‹ค. ์‚ฌ๋žŒ๋“ค์ด ์‹œ์ž‘ํ•˜๋ ค๋ฉด ๋ช‡ ๊ฐ€์ง€ ์ง€์นจ์„ ์ค€๋น„ํ•ด์•ผ ํ•ฉ๋‹ˆ๋‹ค. ์ด๋ฒˆ ์ฃผ๋‚˜ ๋‹ค์Œ ์ฃผ์— ์˜์ƒ์„ ๊ฐ€์ง€๊ณ  ์˜ฌ ์ˆ˜ ์žˆ๊ธฐ๋ฅผ ๋ฐ”๋ž๋‹ˆ๋‹ค.

์ด ํŽ˜์ด์ง€๊ฐ€ ๋„์›€์ด ๋˜์—ˆ๋‚˜์š”?
0 / 5 - 0 ๋“ฑ๊ธ‰