国产精品久久久久久久久软件,国产成人久久久精品二区三区,国产成人无码一区二区三区在线 ,大又大粗又爽又黄少妇毛片,国产精品成人aaaaa网站

您現(xiàn)在所在的是:

PLC論壇

回帖:13個(gè),閱讀:19712 [上一頁(yè)] [1] [2] [下一頁(yè)]
1295
comszmz
文章數(shù):114
年度積分:50
歷史總積分:1295
注冊(cè)時(shí)間:2003/8/29
發(fā)站內(nèi)信
發(fā)表于:2003/10/28 11:10:00
#0樓
本人用的是三菱PLCf1s
想通過(guò)VB讀取D0數(shù)據(jù),程序?qū)崿F(xiàn)如下:
 Private Sub Form_Load()
   MSComm1.ComPort=1
   MSComm1.Settings="9600,N,8,1"
 End Sub

 Private Sub Command1_Click()
   MSComm1.PortOpen=True
   MSComm1.Inputlen=0
   SendCom$=Chr(5)+"01FFWR0D000001"+Chr(13)+Chr(10)
   MSComm1.Output=SendCom  '向PLC發(fā)出讀取D0數(shù)據(jù)命令字符串
   DoEvents
   RdStr$=MSComm1.Input    '接收PLC發(fā)回?cái)?shù)據(jù)
   Rvd$=Mid(RdStr,1,5)    
   If Rvd=Chr(2)+"01FF" Then '是否接收到
      ACKStr$=Chr(6)+"01FF"
      MSComm1.Output=ACKStr
      RdStr=Val("&H"+Trim(Mid(RdStr,6,4))) '取出D0數(shù)據(jù)
      Label1.Caption=RdStr
      Msgbox "讀取正確",16
   Else
      Msgbox "讀取錯(cuò)誤!",16
   End If
 End Sub
但不能讀到D0數(shù)據(jù),上面程序有錯(cuò)嗎?或者與PLC命令通信字符有錯(cuò)嗎?
有些資料書上說(shuō)還要設(shè)置PLC的D8120寄存器,我設(shè)了,還是不行.
還請(qǐng)高人指點(diǎn)指點(diǎn)!!
  敬上!
971
pooboy
文章數(shù):9
年度積分:50
歷史總積分:971
注冊(cè)時(shí)間:2003/10/28
發(fā)站內(nèi)信
發(fā)表于:2003/10/28 13:39:00
#1樓
在DoEvents處使用一段延時(shí)程序試試,再看看PLC上設(shè)定的響應(yīng)時(shí)間是多少,我記得好像是100ms,如果不行那檢查PLC中的通訊錯(cuò)誤繼存器是否有輸出,如有則說(shuō)明程序中的協(xié)議有錯(cuò)。
971
pooboy
文章數(shù):9
年度積分:50
歷史總積分:971
注冊(cè)時(shí)間:2003/10/28
發(fā)站內(nèi)信
發(fā)表于:2003/10/28 13:41:00
#2樓
程序中是否加入了校驗(yàn)和?
971
pooboy
文章數(shù):9
年度積分:50
歷史總積分:971
注冊(cè)時(shí)間:2003/10/28
發(fā)站內(nèi)信
發(fā)表于:2003/10/28 13:42:00
#3樓
參照一下下面的程序。
971
pooboy
文章數(shù):9
年度積分:50
歷史總積分:971
注冊(cè)時(shí)間:2003/10/28
發(fā)站內(nèi)信
發(fā)表于:2003/10/28 13:47:00
#4樓

''ReadWordA(串行控件,站號(hào),數(shù)據(jù)地址,要讀取的長(zhǎng)度)
''例:ReadWordA comm,"01","D0001"

Public Function ReadWordA(comm As MSComm, StNo As String, Address As String, WordLen As String) As Long
   Dim strT As String
On Error Resume Next
   strT = chr(&h05) & StNo & "FF" & "WR" & "A" & Address & WordLen
   strT = strT & Sumcheck(strT) ''
comm.OutBufferCount = 0
comm.RThreshold = Val(WordLen) * 4 + 8
comm.Output = strT
End Function

Public Function Sumcheck(chstr As String) As String ''計(jì)算校驗(yàn)和
Dim hexl As Long
Dim i As Long
   For i = 2 To Len(chstr)
       hexl = hexl + Asc(Mid(chstr, i, 1))
   Next i
   Sumcheck = Right(Hex(hexl), 2)
End Function



[此貼子已經(jīng)被作者于2003-10-28 13:49:28編輯過(guò)]
1295
comszmz
文章數(shù):114
年度積分:50
歷史總積分:1295
注冊(cè)時(shí)間:2003/8/29
發(fā)站內(nèi)信
發(fā)表于:2003/10/28 14:10:00
#5樓
謝謝各位高人,但不知PLC中D8120用不用設(shè)置呢?
971
pooboy
文章數(shù):9
年度積分:50
歷史總積分:971
注冊(cè)時(shí)間:2003/10/28
發(fā)站內(nèi)信
發(fā)表于:2003/11/1 18:58:00
#6樓
D8120是對(duì)內(nèi)部的通訊口設(shè)定參數(shù),你可根據(jù)PLC的參數(shù)來(lái)設(shè)定VB程序中串行控件的參數(shù),或者反過(guò)來(lái)也行。
1295
comszmz
文章數(shù):114
年度積分:50
歷史總積分:1295
注冊(cè)時(shí)間:2003/8/29
發(fā)站內(nèi)信
發(fā)表于:2003/11/2 20:48:00
#7樓
好像不行哦,只收到組同樣的中文亂碼,我都不會(huì)打出來(lái)
好像不行,收到一組亂碼,碼文我不會(huì)打出來(lái)!
為什么會(huì)這樣呢?
972
zzg94
文章數(shù):2
年度積分:50
歷史總積分:972
注冊(cè)時(shí)間:2004/9/23
發(fā)站內(nèi)信
發(fā)表于:2004/9/23 11:47:00
#8樓
我先問(wèn)一下,你是不是直接用通訊電纜與它的編程口連接?如果是這樣的話,它的通訊格式就變了
958
zengqh312
文章數(shù):2
年度積分:50
歷史總積分:958
注冊(cè)時(shí)間:2004/3/18
發(fā)站內(nèi)信
發(fā)表于:2004/9/24 15:59:00
#9樓
通訊參數(shù)是否正確,如比特率,校驗(yàn)位等?

關(guān)于我們 | 聯(lián)系我們 | 廣告服務(wù) | 本站動(dòng)態(tài) | 友情鏈接 | 法律聲明 | 非法和不良信息舉報(bào)

工控網(wǎng)客服熱線:0755-86369299
版權(quán)所有 工控網(wǎng) Copyright©2025 Gkong.com, All Rights Reserved

78.0005