S7-200自由口通訊接收不到任何字符
劉玉蓉
發(fā)布于2014-12-02 17:25
5
0
標(biāo)簽:
自己參考做了一個(gè)自由口通訊的簡(jiǎn)單程序,VB100開始接收數(shù)據(jù),利用接收到字符中斷觸發(fā)(收到@38*后轉(zhuǎn)碼成56放在VW120)輸出。實(shí)驗(yàn)后發(fā)現(xiàn)接收不到任何字符。串口調(diào)試助手試過了串口線 波特率等等沒有設(shè)置錯(cuò)誤。請(qǐng)教找找問題~
程序:LD SM0.1
MOVB 16#09, SMB30
MOVB 16#F0, SMB87
MOVB 16#40, SMB88
MOVB 16#2A, SMB89
MOVW 5, SMW90
MOVB 10, SMB94
ATCH INT_0:INT0, 23
ENI
RCV VB100, 0
INT_0:
LD SM0.0
ATH VB102, VB121, 2
LD SM0.0
AW= VW120, 56
O Q1.3
AN M4.2
= Q1.3
問題補(bǔ)充:
測(cè)試后可以收到數(shù)據(jù),但是不是發(fā)送的數(shù)據(jù)。情況如下:發(fā)送1,PLC中VB4有符號(hào)(0)VB5 ASCLL(g)VB6 ASCLL(?)VB7 ASCLL(?),再發(fā)1,PLC中VB8有符號(hào)(0)VB9 ASCLL(g)VB10 ASCLL(?)VB7 ASCLL(?);重下載程序,發(fā)送2,PLC中VB4有符號(hào)(0)VB5 ASCLL(3)VB6 ASCLL(?)VB7 ASCLL(=),再發(fā)2,PLC中VB8有符號(hào)(0)VB9 ASCLL(3)VB10 ASCLL(?)VB7 ASCLL(=);SMB86 1000_0000
補(bǔ)充一下,我自己程序測(cè)試時(shí)候,串口調(diào)試助手收發(fā)數(shù)據(jù)正常,波特率等等都匹配,用的普通串口線。自己程序收不到任何數(shù)據(jù)時(shí)候無錯(cuò)誤代碼SMB186 0000_0000(串口1)
佳答案
你的是接收程序,你用串口調(diào)試助手可以收到通信對(duì)象的數(shù)據(jù),而PLC接收不到么?通訊協(xié)議是否對(duì)應(yīng)呢?
你接收起始條件為:空閑+起始字符,條件略苛刻吶。改為空閑或起始字符,再試試。
或者用下面的程序,再試試可否接收到數(shù)據(jù)。如果可以,就是你SMB87設(shè)置有問題。
MAIN:
LD SM0.1
MOVB 16#49, SMB30 //自由口,9600,偶校驗(yàn)
MOVD &VB4, VD0
ATCH INT_0:INT0, 8 //連接8號(hào)中斷
ENI
INT_0:
LD SM0.0
MOVB SMB2, *VD0 //將接收到的字符依次存入VB4等
INCD VD0