RS232跟松下PLC連結問題

各位大大~有一個問題想請教各位下列為我

為什麼我在測試使抓取不到PLC回應字串

String 4為以計算好了字串(%01#RDD011050110757CR)

也以用VB測試過字串是正確,也確定有字串回傳.

請各位大大指導一下~^^

一開始以為這篇是在發問PLC...不好意思。

你可以加一個Return在write的地方嗎?

試試看

[QUOTE=abo]

各位大大~有一個問題想請教各位下列為我

為什麼我在測試使抓取不到PLC回應字串

String 4為以計算好了字串(%01#RDD011050110757CR)

也以用VB測試過字串是正確,也確定有字串回傳.

請各位大大指導一下~^^

這是我在vb上所寫的資料抓取程式~~為何在lab上無法抓取到呢

Private Sub Command1_Click()
Timer1.Enabled = True
Timer1.Interval = Val(Text4.Text)
SND = "%01#RDD0110501107"  '讀DT01105 ~ DT01107的值
T$ = SND
SEND = SND + chksum(T$) + Chr(13)
MSComm1.Output = SEND
For j = 1 To 1000000 '送信後延遲時間
 Next j
RDS = MSComm1.Input
Text1.Text = RDS 'PLC回答
RDSa = Mid(RDS, 9, 2) & Mid(RDS, 7, 2)
Text2.Text = RDSa
Text3.Text = Val("&H" & RDSa)

End Sub

Private Sub Form_Load()
MSComm1.Settings = "9600,o,8,1"
MSComm1.CommPort = 5 '視不同pc而定
MSComm1.PortOpen = True
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
End Sub
Private Function chksum$(T$)
L = Len(T$): a = 0
For j = 1 To L
 TJ$ = Mid$(T$, j, 1)
 a = Asc(TJ$) Xor a
 Next j
 Sum$ = Hex$(a)
 If Len(Sum$) = 1 Then Sum$ = "0" + Sum$
 chksum$ = Right$(Sum$, 2)
End Function

 

[/QUOTE]

不好意思,想請問您一下

在您String = %01#RDD011050110757CR

最後那個CR是什麼意思呢?為什麼在VB的SND變數中沒有出現...

不好意思,我不太熟VB的語法|||

您有使用過highlight檢查過狀況是ok的嗎?

[QUOTE=abo][QUOTE=abo]

各位大大~有一個問題想請教各位下列為我

為什麼我在測試使抓取不到PLC回應字串

String 4為以計算好了字串(%01#RDD011050110757CR)

也以用VB測試過字串是正確,也確定有字串回傳.

請各位大大指導一下~^^

這是我在vb上所寫的資料抓取程式~~為何在lab上無法抓取到呢

Private Sub Command1_Click()
Timer1.Enabled = True
Timer1.Interval = Val(Text4.Text)
SND = "%01#RDD0110501107"  '讀DT01105 ~ DT01107的值
T$ = SND
SEND = SND + chksum(T$) + Chr(13)
MSComm1.Output = SEND
For j = 1 To 1000000 '送信後延遲時間
 Next j
RDS = MSComm1.Input
Text1.Text = RDS 'PLC回答
RDSa = Mid(RDS, 9, 2) & Mid(RDS, 7, 2)
Text2.Text = RDSa
Text3.Text = Val("&H" & RDSa)

End Sub

Private Sub Form_Load()
MSComm1.Settings = "9600,o,8,1"
MSComm1.CommPort = 5 '視不同pc而定
MSComm1.PortOpen = True
Text1.Text = ""
Text2.Text = ""
Text3.Text = ""
End Sub
Private Function chksum$(T$)
L = Len(T$): a = 0
For j = 1 To L
 TJ$ = Mid$(T$, j, 1)
 a = Asc(TJ$) Xor a
 Next j
 Sum$ = Hex$(a)
 If Len(Sum$) = 1 Then Sum$ = "0" + Sum$
 chksum$ = Right$(Sum$, 2)
End Function

CR為終止符

這是那的格式

 

[/QUOTE][/QUOTE]

「CR」要用這個

 

所以程式要寫成:

 

 

不是打ASCII的「CR」兩個字喔...

 

試用看看... :)

多謝Benjamin的提醒,這就是我想說表達的XD

CR  = Enter,也讓我學到一課