目前的所有PLC都是采用獨立的CPU和I/O模塊,PC機只是用于編寫和下載程序以及監(jiān)控,而PLC的CPU性能遠不及PC機的速度快,價格卻不在PC機之下。
介于以上因素,我個人認為使用PC機代替PLC非常有必要。
8051單片機有32個I/0引腳,分別為P0,P1,P2,P3。如果使用單片機做為終端站,PC為上位機,則只需要使上位機與終端站建立通訊關系即可實現(xiàn)簡單
的邏輯控制。
1.通訊協(xié)議
輸入模塊
1位起始位
9位數(shù)據(jù)位
其中,前4位為站號,中4位為地址位,后1位為開關位,
前4位由4位二進制組合表示站地址0-15共16個站.中4位由4位二進制組合表示位地址,后1位表示位的開或關
1停止位
當輸入模塊的任何引腳檢測到高電平時則向上位機發(fā)送一幀數(shù)據(jù).例如:P0.0有低到高的電平跳變時,則想上位機發(fā)送0 0000 0001 1 1 表示方法:第1位表示開始
發(fā)送數(shù)據(jù),第2-5位表示0號站,第6-9位表示P0.0 第10位表示位邏輯1 第11位表示發(fā)送結束.
第2-5位可以組合為16種變化,分別表示16個站,
第6-9位可以組合為16種變化,分別表示16個輸入點.
這一幀數(shù)據(jù)表示0號站的P0.0有高電平輸入.
輸出模塊
位起始位
9位數(shù)據(jù)位
其中,前4位為站號,中4位為地址位,后1位為開關位,
前4位由4位二進制組合表示站地址0-15共16個站.中4位由4位二進制組合表示位地址,后1位表示位的開或關
1停止位
當需要使某個站的某個引腳產(chǎn)生高電平時則由上位機發(fā)送一幀數(shù)據(jù).例如:需要使12號站的第10個引腳產(chǎn)生高電平則發(fā)送 01100 1010 1 1
2.采用此種方式工作需要在I/0模塊中編寫程序同時控制程序存在PC機上.所有的輸入模塊只需要將檢測到的信號傳輸給上位機.
所有的輸出模塊只需要接收上位機的信號,然后輸出相應的引腳即可.
所有的邏輯程序存在于PC機中.
3.每個模塊上都使用P3.2-P3.5組成0-15的站號.
0號站代碼 00000*****1
1號站代碼 00001*****1
2號站代碼 00010*****1
3號站代碼 00011*****1
4號站代碼 00100*****1
5號站代碼 00101*****1
6號站代碼 00110*****1
7號站代碼 00111*****1
8號站代碼 01000*****1
9號站代碼 01001*****1
10號站代碼 01010*****1
11號站代碼 01011*****1
12號站代碼 01100*****1
13號站代碼 01101*****1
14號站代碼 01110*****1
15號站代碼 01111*****1
4.由于采用RS485通訊控制,因此模塊最大距離可達1200米,可以把模塊安裝在一起,也可以分開安裝,只需要把所有的模塊用RS485
通訊線連接起來即可.
5.每個模塊可配置COM端口,這樣,在模塊里寫入不同的程序就可實現(xiàn)不同的功能,即可做I/O模塊,也可做單機PLC.升級空間很大,靈活配置.
我正在做這方面的研究,希望和志同道合的朋友一起討論.謝謝!
聯(lián)系方式 13158650515 QQ395894765 陳平
版權所有,未經(jīng)授權不得轉載!
[ 此帖被chenpingyg在2010-03-28 23:31重新編輯 ]