10套有點(diǎn)小問題,S7-200 SMART的開放式以太網(wǎng)通訊資源是8個(gè)主動(dòng)資源8個(gè)被動(dòng)資源。
加上觸摸屏之類的,全部用一種方式會(huì)受限的,就看是怎么設(shè)計(jì)整個(gè)交互邏輯,是全部對(duì)全部還是一對(duì)一
一對(duì)一就很簡單了~
如果是全部對(duì)全部,稍微有點(diǎn)麻煩~
數(shù)據(jù)量不大的話,提供一種思路模擬ethcat,可以試試看:
就是簡單粗暴的全部搞一起比如100個(gè)字節(jié),每臺(tái)設(shè)備10個(gè)字節(jié),OP1主動(dòng)put到OP2,一次把100個(gè)字節(jié)全發(fā)過去,同一個(gè)地址區(qū)域,OP2主動(dòng)Put到OP3,以此類推,最后OP10主動(dòng)put到OP1,一圈下來,所有的通信數(shù)據(jù)都在這100個(gè)字節(jié)里面了。然后OP1只對(duì)自己的10個(gè)字節(jié),比如VB0~VB9做寫入操作,其他區(qū)域都是讀,OP2對(duì)應(yīng)VB10~VB19。。。OP10對(duì)應(yīng)VB90~VB99
這里是主動(dòng)投遞數(shù)據(jù)用的put,用get也是一樣的,一組put或者get指令一次最大可以走212個(gè)字節(jié),如果只是投遞控制數(shù)據(jù)是完全夠用的,如果要同步數(shù)據(jù)比如條碼之類的可能就夠嗆。
如果通信有嚴(yán)格的時(shí)序要求,可以自己模擬一個(gè)心跳信號(hào)用于,比如每臺(tái)設(shè)備的數(shù)據(jù)區(qū)域的第1個(gè)字節(jié),由上一臺(tái)設(shè)備做自增,本地設(shè)備緩存這個(gè)字節(jié)并且和通信區(qū)域做比對(duì),有變化了說明一次通信結(jié)束了,當(dāng)前的數(shù)據(jù)已經(jīng)刷新,那么再開始往下一臺(tái)設(shè)備投遞,投遞前把下一臺(tái)設(shè)備的自增變量+1,方便下一臺(tái)設(shè)備判斷是否有數(shù)據(jù)刷新~