jww
級別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 28 個
工控威望: 178 點
下載積分: 642 分
在線時間: 44(小時)
注冊時間: 2008-12-21
最后登錄: 2024-09-13
查看jww的 主題 / 回貼
456樓  發(fā)表于: 2009-12-18 09:50
新手請教:1. 可不可以用PROFIBUS線進行MPI通信(在兩臺S7 300之間)?
          2.我安裝的STEP7 V5.4中文版軟件編程窗口下左側目錄的“庫”里文件不全,只有SMATIC-NET-CP文件,如何補全?
敬請高手指教。謝謝!
deanhao
級別: *
精華主題: * 篇
發(fā)帖數(shù)量: * 個
工控威望: * 點
下載積分: * 分
在線時間: (小時)
注冊時間: *
最后登錄: *
查看deanhao的 主題 / 回貼
457樓  發(fā)表于: 2009-12-18 22:23
引用
引用第517樓jww于2009-12-18 09:50發(fā)表的  :
新手請教:1. 可不可以用PROFIBUS線進行MPI通信(在兩臺S7 300之間)?
          2.我安裝的STEP7 V5.4中文版軟件編程窗口下左側目錄的“庫”里文件不全,只有SMATIC-NET-CP文件,如何補全?
敬請高手指教。謝謝!

1,可以的。
2 找一找?guī)煳募,這個我倒是沒有遇到過。
jww
級別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 28 個
工控威望: 178 點
下載積分: 642 分
在線時間: 44(小時)
注冊時間: 2008-12-21
最后登錄: 2024-09-13
查看jww的 主題 / 回貼
458樓  發(fā)表于: 2009-12-19 12:57
用PROFIBUS線進行MPI通信(在兩臺S7 300之間),是不是兩端接上DP頭,電阻都打在ON,然后按照MPI的編程操作就行了?我是這樣進行的,但兩臺300 PLC不通訊錯在哪里呢?請高手指教!
wwcwwc
級別: VIP會員

精華主題: 0
發(fā)帖數(shù)量: 3393 個
工控威望: 3189 點
下載積分: 70387 分
在線時間: 1603(小時)
注冊時間: 2008-04-20
最后登錄: 2024-10-31
查看wwcwwc的 主題 / 回貼
459樓  發(fā)表于: 2009-12-22 09:33
回519樓:請問你的硬件組態(tài)怎樣?發(fā)幾個圖片你看看
  

在組態(tài)完成后,加OB82;OB85;OB86;OB87;OB122塊上去.
jww
級別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 28 個
工控威望: 178 點
下載積分: 642 分
在線時間: 44(小時)
注冊時間: 2008-12-21
最后登錄: 2024-09-13
查看jww的 主題 / 回貼
460樓  發(fā)表于: 2009-12-22 16:22
感謝520樓,我用的兩臺PLC 是西門子300 CPU314 訂貨號是314-1AG14-0AB0,不能進行MPI通信(利用PROFIBUS線)的原因可能是這款PLC不支持PROFIBUS通信,它的硬件設置里就不能進行PROFIBUS通信設置。非常感謝,我說的對嗎?
hhjauto
級別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 26 個
工控威望: 139 點
下載積分: 480 分
在線時間: 11(小時)
注冊時間: 2009-11-24
最后登錄: 2015-07-01
查看hhjauto的 主題 / 回貼
461樓  發(fā)表于: 2009-12-25 16:45
在FC中,定義臨時變量#TEMP12、#TEMP4、#TEMP5、#TEMP6、#TEMP7均為DWord類型。#TEMP12用于計算指針偏移量,#TEMP4-7用于指向4個ARRY[1……112]BOOL類型的數(shù)組)STL代碼如下:
   OPN   #IN0                 //打開相應的DB
     ……   ……
      L     DBW    8               //DBW8保存了一個值為112的INT數(shù)據(jù)
      L        8
      /I    
      SLD   3
      L     P#DBX 0.0           //這里為何是用P#DBX0.0而不是用P#0.0?可否用P#0.0?
      +D    
      T     #TEMP12              //相加之后#TEMP12的內(nèi)容是怎樣的?
       L     P#DBX 10.0
      T     #TEMP4          
      L     #TEMP12
      +D    
      T     #TEMP6                //我的問題是:用到P#DBX byte.bit來相加,則高字節(jié)的內(nèi)容是否相加?對尋址有無影響?
      L     #TEMP12
      +D    
      T     #TEMP7
      L     #TEMP12
      +D    
      T     #TEMP5
       L     DBW    8
M001: T     #TEMP3
           ……  ……
   A    DBX[#TEMP4]
      A    DBX[#TEMP5]
      =    DBX[#TEMP6]
     …… ……
   L     #TEMP3
      LOOP  M001
hhjauto
級別: 探索解密
精華主題: 0
發(fā)帖數(shù)量: 26 個
工控威望: 139 點
下載積分: 480 分
在線時間: 11(小時)
注冊時間: 2009-11-24
最后登錄: 2015-07-01
查看hhjauto的 主題 / 回貼
462樓  發(fā)表于: 2009-12-25 22:43
就我的理解,將P#DBX  byte.bit裝入到32位指針中,指針的內(nèi)容為1000_0100_0000_0BBB_BBBB_BBBB_BBBB_BXXX。而若是將這樣的2個32位指針相加,那么第25、26、27位是否一樣地也相加呢??則相加的結果是否會導致尋址不再指向DBX了??然而別人程序就是這么編的應該是沒錯的,有點想不通。我是新手,剛接觸S7300,望前輩或是明白人給予指點,感激不盡。
deanhao
級別: *
精華主題: * 篇
發(fā)帖數(shù)量: * 個
工控威望: * 點
下載積分: * 分
在線時間: (小時)
注冊時間: *
最后登錄: *
查看deanhao的 主題 / 回貼
463樓  發(fā)表于: 2009-12-26 11:30
引用
引用第523樓hhjauto于2009-12-25 22:43發(fā)表的 樓上的問題,哪位大俠幫忙解答下?萬分感謝 :
就我的理解,將P#DBX  byte.bit裝入到32位指針中,指針的內(nèi)容為1000_0100_0000_0BBB_BBBB_BBBB_BBBB_BXXX。而若是將這樣的2個32位指針相加,那么第25、26、27位是否一樣地也相加呢??則相加的結果是否會導致尋址不再指向DBX了??然而別人程序就是這么編的應該是沒錯的,有點想不通。我是新手,剛接觸S7300,望前輩或是明白人給予指點,感激不盡。

這個編程我覺得有點不嚴謹,有可能會有莫名的問題。
首先要肯定你的理解是正確的,兩個雙字相加,是沒有那個位被放棄的,正如你說的25、26、27位也是相加。而這程序之所以出現(xiàn)正確結果是因為:他使用的是存儲器間接尋址,而該尋址類型都是區(qū)域內(nèi)間接尋址,也就說1000_0100_0000_0BBB_BBBB_BBBB_BBBB_BXXX,比B高的位都是無效的,原則上是應該給清零的,以免出現(xiàn)不必要的麻煩。
就本程序而言,只有位號和字節(jié)號有效,高位也是相加只是無效,,因此你所說的區(qū)域代碼DBX DIX等就是無用的,所以編程的結果的會出現(xiàn)對的,但是建議把高位都清零,因此這個編程是不嚴謹?shù)摹?br />還有就是要會利用仿真監(jiān)控,你可以監(jiān)視累加器,地址寄存器,狀態(tài)字等等,很容易能看出來到底高位有沒有變化。
deanhao
級別: *
精華主題: * 篇
發(fā)帖數(shù)量: * 個
工控威望: * 點
下載積分: * 分
在線時間: (小時)
注冊時間: *
最后登錄: *
查看deanhao的 主題 / 回貼
464樓  發(fā)表于: 2009-12-26 11:33
羅嗦一下,你說的區(qū)域代碼是區(qū)域間間接尋址用的,可使用寄存器間接尋址。
本帖最近評分記錄:
  • 下載積分:+2(hhjauto) 熱心助人
    hhjauto
    級別: 探索解密
    精華主題: 0
    發(fā)帖數(shù)量: 26 個
    工控威望: 139 點
    下載積分: 480 分
    在線時間: 11(小時)
    注冊時間: 2009-11-24
    最后登錄: 2015-07-01
    查看hhjauto的 主題 / 回貼
    465樓  發(fā)表于: 2009-12-27 00:21
    引用
    引用第525樓deanhao于2009-12-26 11:33發(fā)表的  :
    羅嗦一下,你說的區(qū)域代碼是區(qū)域間間接尋址用的,可使用寄存器間接尋址。

    感謝deanhao的指點,也就是說尋址正確的原因在于A   DBX[#TEMP4]這樣的指令中已經(jīng)指定了尋址DBX了是嗎?就是說區(qū)域內(nèi)尋址一般使用P#byte.bit裝入指針中,而在區(qū)域間尋址才使用P#M byte.bit這樣的數(shù)據(jù)裝入指針中,而后面的指令就可以直接使用A  #TEMP4的形式了。PLCSIM電腦上有裝,還不熟悉怎么監(jiān)視,還需慢慢摸索?傊芨兄x你的回答……一個人摸索真的是很郁悶的一件事情。此論壇真是個好地方。
    hhjauto
    級別: 探索解密
    精華主題: 0
    發(fā)帖數(shù)量: 26 個
    工控威望: 139 點
    下載積分: 480 分
    在線時間: 11(小時)
    注冊時間: 2009-11-24
    最后登錄: 2015-07-01
    查看hhjauto的 主題 / 回貼
    466樓  發(fā)表于: 2009-12-27 01:26
    “而后面的指令就可以直接使用A  #TEMP4的形式了”,似乎不對,這樣的指令似乎是錯的,必須使用A  DBX[#TEMP4],百度了一下,總算是明白了,寄存器間接尋址支持X [AR1,P#byte.bit]的形式。區(qū)域代碼的作用就在這里是吧??
    deanhao
    級別: *
    精華主題: * 篇
    發(fā)帖數(shù)量: * 個
    工控威望: * 點
    下載積分: * 分
    在線時間: (小時)
    注冊時間: *
    最后登錄: *
    查看deanhao的 主題 / 回貼
    467樓  發(fā)表于: 2009-12-27 11:14
    引用
    引用第527樓hhjauto于2009-12-27 01:26發(fā)表的  :
    “而后面的指令就可以直接使用A  #TEMP4的形式了”,似乎不對,這樣的指令似乎是錯的,必須使用A  DBX[#TEMP4],百度了一下,總算是明白了,寄存器間接尋址支持X [AR1,P#byte.bit]的形式。區(qū)域代碼的作用就在這里是吧??

    你的理解是正確的,以為上面已經(jīng)指定區(qū)域,即區(qū)域內(nèi)間接尋址,所以剩下的只用指定字節(jié)號和位號就可以了。
    而寄存器的尋址可以使用你說的區(qū)域間,這時候的區(qū)域代碼就是很重要了。
    但是我不贊成你給的程序的編程方式,因為很不規(guī)范回造成一些錯誤。
    還有什么問題歡迎討論。