์๋
ํ์ธ์:
์๋ ค์ง ์ํ์ ๋
ผ๋ฆฌ์ ์์์ ๋ค์ ๋จ๊ณ๋ก ์งํํ๊ธฐ ์ํด ๋๋ฝ๋ ์กฐ๊ฑด์ ๋ฌด์์
๋๊น?
๊ณ ๋ง์, ๋น
ํ ๋ฅด.
์ ํํ ์ด๋ค ์๊ฐ ์ด๋ค ํด๋์ ์๋์ง ํ์คํ์ง ์์ต๋๊น? ๋ณด๊ณ ์๋ ์์ ์ ๊ตฌ์ฑ ์์์์ ๋ฉ์์ง์ ๊ตฌํํ ์ ์์ต๋๋ค.
์ ํํ ์ด๋ค ์๊ฐ ์ด๋ค ํด๋์ ์๋์ง ํ์คํ์ง ์์ต๋๊น? ๋ณด๊ณ ์๋ ์์ ์ ๊ตฌ์ฑ ์์์์ ๋ฉ์์ง์ ๊ตฌํํ ์ ์์ต๋๋ค.
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ํ๊ณ ๋๋ ๊ทธ๊ฒ์ ์ค๋ช
ํ ๊ฒ์ด๋ค.
In- ๋ฐ Outputs %Q /%I ๋ dut์์ ์ ์ธ๋๊ณ ํ๋์จ์ด์ ๋ํ ๋งํฌ๋
https://github.com/TcOpenGroup/TcOpen/discussions/15 ๋ฅผ ์ฐธ์กฐํ์ญ์์ค.
๋๋ ์์ fbs์ธ ๋ค์ํ ์์ ๊ธฐ๋ฅ์ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๊ทธ๋ค์ ๊ฐ๋จํ ์์ ์ ๊ตฌํํ๊ณ ๋์ค์ ์๋ฅผ ๋ค์ด ์ค๋ฆฐ๋ ๋๋ ๋ชจํฐ์ ๊ฐ์ ๊ตฌ์ฑ ์์๋ก ์กฐ๋ฆฝํ ์ ์์ต๋๋ค.
๋ด FB Cyl์ ์ถ์ ํด๋์ค Actuator์์ ํ์๋ฉ๋๋ค. ์ธํฐํ์ด์ค IactionProviding์ ์ฌ์ฉํ๋ฉด ์ค๋ฅ ์ฒ๋ฆฌ๋ฅผ ์ํ ๋ฉ์๋์ pEventid, pSeverity ๋ฑ์ ์ค์ ํ ์ ์์ต๋๋ค.
์ด์ ์ค๋ฆฐ๋๋ฅผ ์ธ์คํด์คํํ ๋ WorkPos ๋ฐ/๋๋ HomePos์ timeOut์ ์ถ๊ฐํ ์ ์์ต๋๋ค.
์๊ฐ์ด ์ค์ ๋๊ณ ์๊ฐ ์ด๊ณผ๊ฐ ๋ฐ์ํ๋ฉด TCEventHandling ์์คํ
์ ํตํด ์ด๋ฒคํธ๊ฐ ์์ฑ๋ฉ๋๋ค.
์ด๊ฒ์ด ํฅ๋ฏธ๋กญ๊ฑฐ๋ ์ ์ฉํ๋ค๋ฉด ํผ๋๋ฐฑ์ ์ฃผ์๋ฉด ๊ฐ์ฌํ๊ฒ ์ต๋๋ค.
@RGrabichler๋ฅผ ๊ณต์ ํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค! ๋๋ ๋น์ ์ ๋์์ธ์ ์ข์ํฉ๋๋ค. ๋งค์ฐ ๊น๋ํด ๋ณด์ ๋๋ค. ์ด๋ฒคํธ ๋ก๊ฑฐ๋ฅผ TcOpen ๋ฉ์์ง์ ๊ตฌํํ๋ ๊ฒ์ ๊ณ ๋ คํ์๊ฒ ์ต๋๊น?
๋ค์ ๋งํฌ๋ฅผ ๊ฐ๋จํ ์ดํด๋ณด์ญ์์ค. ๋ค์ ์ฃผ์ ๋ ์์ธํ ๋ ผ์ํ ์ ์์ต๋๋ค.
C# ๋ฌธ์์ฒ๋ผ ๋ณด์ธ๋ค๋ ์ ์ ๋ฌด์ํ์ธ์. ์ง๊ธ์ ํ์ ๋ฌธ์๋ง ์ดํด๋ณด์ธ์.
๊ฐ์ฌ ํด์
๊ทธ๋ฐ ํ๋ก์ ํธ์ ๊ธฐ์ฌํ๊ณ ์ถ์ต๋๋ค.
์์ ์ธ๊ธํ๋ฏ์ด ์ ๋ ๋ค๋ฅธ ์ฌ๋๋ค๊ณผ ํจ๊ป ๋ ํฐ ํ๋ก์ ํธ๋ฅผ ์ํํ ๊ฒฝํ์ด ๊ฑฐ์ ์์ต๋๋ค.
๊ทธ๋์ ์ด๊ธฐ์ ๋ง์ ์ง๋๊ฐ ํ์ํฉ๋๋ค.
@RGrabichler ์ ๋ ๊ด์ฐฎ์ต๋๋ค... ์ ๋ ์ฐ๋ฆฌ ๋ชจ๋๊ฐ ๊ทธ ๊ณผ์ ์์ ๋ฐฐ์ฐ๊ฒ ๋ ๊ฒ์ด๋ผ๊ณ ์๊ฐํฉ๋๋ค. GH๋ฅผ ์ฌ์ฉํ๋ ์ฐ์ ์๋ํ์๋ ์ฝ๊ฐ์ ์ ํต์ด ์์ต๋๋ค. ์ฌ๋๋ค์ด ์์ํ๋ ค๋ฉด ๋ช ๊ฐ์ง ์ง์นจ์ ์ค๋นํด์ผ ํฉ๋๋ค. ์ด๋ฒ ์ฃผ๋ ๋ค์ ์ฃผ์ ์์์ ๊ฐ์ง๊ณ ์ฌ ์ ์๊ธฐ๋ฅผ ๋ฐ๋๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
@RGrabichler๋ฅผ ๊ณต์ ํด ์ฃผ์ ์ ๊ฐ์ฌํฉ๋๋ค! ๋๋ ๋น์ ์ ๋์์ธ์ ์ข์ํฉ๋๋ค. ๋งค์ฐ ๊น๋ํด ๋ณด์ ๋๋ค. ์ด๋ฒคํธ ๋ก๊ฑฐ๋ฅผ TcOpen ๋ฉ์์ง์ ๊ตฌํํ๋ ๊ฒ์ ๊ณ ๋ คํ์๊ฒ ์ต๋๊น?
๋ค์ ๋งํฌ๋ฅผ ๊ฐ๋จํ ์ดํด๋ณด์ญ์์ค. ๋ค์ ์ฃผ์ ๋ ์์ธํ ๋ ผ์ํ ์ ์์ต๋๋ค.
๊ฐ๋ ์
๋ฌผ์ฒด
๋ฉ์ ์ ,
C# ๋ฌธ์์ฒ๋ผ ๋ณด์ธ๋ค๋ ์ ์ ๋ฌด์ํ์ธ์. ์ง๊ธ์ ํ์ ๋ฌธ์๋ง ์ดํด๋ณด์ธ์.
์ํธ
๊ฐ์ฌ ํด์