안녕하세요
요식업 프로그램을 개발 test 중인데요
요식업 프로그램 특성상 주방에 주문서 출력을
시리얼 프린터로 주문서을 날립니다
하루 평균 400 ~ 500 장 정도 주문이 발생 됩니다
그런데 문제는 4 ~ 5 건 정도 주문서가 출력이 안되는
경우가 발생됩니다(주문량이 폭주할때 발생된것 같습니다)
그래서 시리얼 프린터 통신 케이블 길이도 최대한 줄이고 (20m 내외)
소프트웨어 적어로 delay 시켜서 프린터로 전송시켜 보고
했는데 이 문제가 해결 되지 않고 있습니다
그래서 알아본게 흐름제어를 하면 data유실을 막을수 있다고
하느데 정확한 방법을 알수 없어 이렇게 질문 드립니다
흐름제어 방법은 2가지로 알고 있습니다
- 하드웨어 방법 :
PC의 컴포트에서 흐름제어를 하드웨어로 설정만 하면 되는걸로
알고 있습니다
- 소프트웨어 방법 : ?
하드웨어나 소프트웨어 흐름제어를 하려면 기본 적인 설정들이 있는걸로
알고 있습니다. 어떻게 설정을 해야 되는지 궁금합니다..
시리얼 통신에서 data 유실없이 통신하려면 어떤방법이 최선인지
궁금합니다
여러분들의 도움 부탁드립니다!!
저의 경험상 프로토콜을 정하지 않고 그냥 사용할 경우 개발단계는 편할 지 모르겠지만 언젠가 문제가 발생됩니다. 노이즈의 영향이나 커넥터 접속 불량, 케이블 노화 등등의 문제로 지속적으로 A/S가 필요하게 될지도 모를 일입니다.
제 경험 상으로 말씀드리면..
일반 시리얼 프린터라면 프로토콜을 내장하고 있을 것입니다.
Packet방식으로하진 않더라도 Xon/Off 또는 DTS 이런 것들 로 통신처리를 하죠. 어진간 하면 이런건 지켜 줘야 나중에 편합니다.
통신속도는 가능한 낮게 설정하시는것이 유리합니다.
프린터가 빠른 속도를 요구하지 않는다면 2400, 1200 정도 까지 낮추는것이 좋습니다. 통신속도는 거리와 관계가 깊습니다. 정확하지 않지만 9600의 경우 10m이내 인걸로 기억....
굳이 빠른 속도로 통신하실려면 422통신으로 변환해서 사용하시면 거리의 제약은 피할수 있습니다. 2km 정도까지 지원한다니깐요...
그리고 글자가 깨어지는것이 아니라 출력 자체가 안된다는것을 한번 살펴봐야 할 것 같습니다. 일반적으로 전송시 글자가 깨어지는 경우(극히 드문)가 있지만 출력 자체가 안될 경우는 시리얼통신 외 다른 각도에서 살펴보시느것도 필요할 것 같습니다.(물론 해보셨겠지만..)
최종적으로 확인 하는 방법은 아날라이저를 걸어서 육안으로 확인하는 작업이 필요합니다. 만약 아날라이저가 없으시면 프린터쪽에 노트북에 병렬로 땜질해서 하루나 이틀 모니터링해보면 도움이 되죠...(어진간하면 모니터링됩니다.)
두서없이 주절주절하여 ...
그래도 도움이 되셨으면 좋겠습니다.