jswxhl
級別: 探索解密
![]() |
各位大俠好, CPU317-2DP通過(guò)PROFIBUS協(xié)議連接CPU226上面的EM277,組成PROFIBUS網(wǎng)絡(luò ),CPU317-2DP(寄存器DB0.DBD0)如何對CPU226中的VD0寄存器做到實(shí)時(shí)讀寫(xiě)?(即當直接改變CPU226中VD0的數據的時(shí)候,CPU317-2DP需要讀到DB0.DBD0中;當CPU317-2DP中的DB0.DBD0中的數據有修改時(shí),數據同步寫(xiě)入到CPU226的VD0寄存器)難點(diǎn)是EM277的GSD文件中是I和O分開(kāi)傳送進(jìn)行讀寫(xiě)功能的。 |
---|---|
|
沸騰的冰
級別: 略有小成
![]() |
其實(shí)你這個(gè)想法本來(lái)是不現實(shí)的,也是有矛盾的。舉個(gè)例子說(shuō)明,你剛才提到的同步,是誰(shuí)跟誰(shuí)同步?如果VD0里是5,DB0.DBD0里面是6,那是5變成6還是6變成5? 也就是說(shuō)這兩個(gè)寄存器如果存在數據不同的時(shí)候到底是誰(shuí)傳給誰(shuí),誰(shuí)寫(xiě)給誰(shuí)?你這不是在難為PLC嗎? |
---|---|
|
jswxhl
級別: 探索解密
![]() |
謝謝樓上的, 但是這個(gè)應該可以實(shí)現的,比如用觸摸屏與S7 200連接通訊后,在觸摸屏上修改一個(gè)值(與CPU226對應VD0寄存器),那么VD0數據馬上就變成觸摸屏輸入的值;同理,在CPU226上面通過(guò)編程軟件修改VD0的值,觸摸屏上也馬上變成了CPU上面修改的值。 |
---|---|
|
沸騰的冰
級別: 略有小成
![]() |
觸摸屏是往PLC的寄存器里面寫(xiě)值,而PLC并不往觸摸屏的寄存器里面寫(xiě)東西啊,也只是一個(gè)單方向的寫(xiě)。 如果你非要那樣做,通過(guò)編程也能實(shí)現,經(jīng)過(guò)兩個(gè)其他的寄存器判斷中轉一下就可以了,但是沒(méi)有什么意義! |
---|---|
|
jswxhl
級別: 探索解密
![]() |
我這個(gè)問(wèn)題的來(lái)源是,S7 300上面通過(guò)MPI掛了WINCC,S7 200上面掛了觸摸屏,然后WINCC上需要能修S7 200上面的VD0的值,同時(shí),觸摸屏上面也需要修改VD0里面的值,但是發(fā)現比較難實(shí)現。 |
---|---|
|
沸騰的冰
級別: 略有小成
![]() |
有兩種方案,第一種比較簡(jiǎn)單,也是我一直采用的辦法,將系統分為遠程和本地兩種模式就可以了,模式轉換的時(shí)候,把數據往相應的對方傳輸一下就可以了! 第二種方案,WINCC把直接讀寫(xiě)DB0.DBD0,這個(gè)寄存器的數據傳到VD4里面,同時(shí)觸摸屏對VD0進(jìn)行讀寫(xiě),如果VD0和VD4不相等的時(shí)候,判斷誰(shuí)的值是最新的,如果VD4是最新的,說(shuō)明數據是從WINCC來(lái)的,然后直接覆蓋VD0,如果VD0是最新的,說(shuō)明數據是從觸摸屏來(lái)的,把VD0的數據傳給DB0.DBD4,然后DB0.DBD4覆蓋DB0.DBD0。 我這么說(shuō)不知道你能否看明白 |
---|---|
本帖最近評分記錄: |