首页 上一页 1 2 下一页 尾页

三菱PLC与台达变频器通讯错!高手帮我查查程序 点击:9142 | 回复:22



gzwmy

    
  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 2回
  • 年度积分:0
  • 历史总积分:18
  • 注册:2006年4月10日
发表于:2006-04-10 20:56:00
楼主
PLC是三菱FX1S-20MR,变频器是台达VFD007M23A
在变频器上设置 P88=1 P89=9600 P92=03(8 N 2) P0=03
PLC D8120=H0C89
想实现对变频器修改运行频率,即P66项
LD M8000
OUT M8161
MOV H0C89 D8120 通讯格式
MOV K5 D8129    等待时间
MOV H02 D0起始符
MOV H30 D1地址
MOV H31 D2地址
MOV H30 D3写入参数
MOV H37 D4写入参数
MOV H36 D5第66项
MOV H36 D6第66项
MOV H30 D7  频率值
MOV H35 D8  频率值 
MOV H35 D9  频率值
MOV H35 D10 频率值
MOV H03 D11 停止
MOV H30 D12 校验
MOV H36 D13 校验
LD M8000
RS D0 K12 D20 K0
LDP M8013 每秒写一次
SET M8122
RST M8123
END
经验不足不知哪错了,各位帮我查查吧,谢了


楼主最近还看过



二聋戏猪

  • 精华:0帖
  • 求助:0帖
  • 帖子:41帖 | 240回
  • 年度积分:0
  • 历史总积分:377
  • 注册:2006年4月11日
发表于:2006-04-11 19:05:00
1楼
不懂,顶一下

张永辉

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 31回
  • 年度积分:0
  • 历史总积分:42
  • 注册:2006年4月06日
发表于:2006-04-24 00:59:00
2楼
查查

hanjiang-snow

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 11回
  • 年度积分:0
  • 历史总积分:20
  • 注册:2004年11月27日
发表于:2006-04-26 17:33:00
3楼
你把这段程序与台达VFD007M23A的通讯资料发到hanjiang-snow@163.com,我帮你看看.我们刚做了三菱fx1n与台达vfd-b变频器之间的通讯

马文毕

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 3回
  • 年度积分:0
  • 历史总积分:15
  • 注册:2006年11月11日
发表于:2006-11-11 17:55:00
4楼
有哪位朋友,有三菱PLC与台达变频器通讯的程序,我现在正急着需要这个程序,如有哪位朋友有的话,发到我邮箱来好吗?我的邮箱:mawenbiplc@yahoo.com.cn ,谢谢了!

马文毕

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 3回
  • 年度积分:0
  • 历史总积分:15
  • 注册:2006年11月11日
发表于:2006-11-11 18:00:00
5楼

马文毕

  • 精华:0帖
  • 求助:0帖
  • 帖子:4帖 | 3回
  • 年度积分:0
  • 历史总积分:15
  • 注册:2006年11月11日
发表于:2006-11-11 18:03:00
6楼
gzwmy你好!你那三菱PLC与台达变频器通讯的程序搞好没有?能不能给我发到我邮箱来?我的邮箱: mawenbiplc@yahoo.com.cn 

通讯网

  • 精华:11帖
  • 求助:2帖
  • 帖子:464帖 | 10265回
  • 年度积分:0
  • 历史总积分:24711
  • 注册:2004年7月09日
发表于:2006-11-12 09:10:00
7楼
VB實現電腦與台達PLC的串列通信 

───────PLC產品處 王乃全 

摘要:本文介紹了Visual Basic6編程語言,MODBUS ASCII通信協定及通過VB如何實現
與台達DVP PLC的通信 

關鍵字:Visual Basic MODBUS ASCII PLC 

前言: 

 現代的世界是一個高度自動化的世界,各式各樣的設備都可以和電腦連線,而最簡單的
自動化連線方式就是使用串列通信。 

 VB提供了串列通信控制項可以讓開發者開發串列通信的系統程式,功能上也提供了不
少為用戶著想的簡便之處。 

 PLC是現在控制領域不可缺少的部分,已經非常普及,如何簡便的與PLC交互已經成
為眾多廠商新的競爭戰場。由此產生了人機界面、組態軟體等產品。這些產品的產生大大簡
化了對PLC的控制,操作,使用更方便。但也有共同的缺點:價格過高和開發性較差。VB
作為“原始"的編程語言在這兩方面無疑有著明顯的優勢。 

 本文結合一個簡單的案例,用比較基礎的概念為大家展示如何通過VB實現PC-PLC的
通信,對於初涉這個領域的工程師,也會受益與本文提供的基本概念。 

一、串列通信基本概念 

1、 通信的種類:通常通信的形式可以分為兩種,並行通信(Parallel Communication)和串
列通信(Serial Communication)。所謂並行,既是一次傳輸量為8位;而串列一次只傳1
位元。這兩種不同的通信模式如圖 


 

 

 

 

 

 平行傳輸 

 

 

 

 

 

 

 

 

 

 

 

 串列傳輸 

2、 串列通信 


文本框: 1
2
3
4
5
6
7
8
文本框: 1
2
3
4
5
6
7
8
文本框: 并行设备
如打印机
文本框: 设 备文本框: 设 备文本框: 并行设备
如打印机
文本框: 8 7 6 5 4 3 2 1
常用的串列通信也有兩種。分別位RS-232和RS-485 




2-1 RS-232 

 RS-232的信號准位元乃是參考地線而來的,如圖,傳輸端參考接地端1來傳送資料;
接收端則參考接地端2還原出傳送端的信號準備。 

 

 傳送端 接收端 

 


 


 


 

 

 

 


 

 

 

 
地電壓 

 接地端1 接地端2 

由圖可知,由於兩個接地端准位不一定一樣,而且很容易受到干擾,所以信號在RS-232
線路傳輸時,很容易產生錯誤。 

 

2-2 RS-485 

 RS-485的信號傳輸方式如圖。 

 傳送端 接收端 

 


 


 

 

 


 

 

 

 

 

 地電壓 

 接地點1 接地點2 

 

 RS-485的信號將被傳送出去時會分成正負兩條線路,當到達接收端後,在將信號相減
還原成原來的信號;如果將原始的信號表示成(DT),而被分成的信號分別標示成(D+)
及(D-),則DT= (D+)-(D-) 

同樣地,接收端在接收到信號後,也依據上式還原成原來的樣子。如果線路受到干擾,兩條
線路的信號分別為(D+)+Noise (D-)+Noise。接收端還原信號為 

(DT)= [(D+)+Noise]-[ (D-)+Noise] 

與先前結果一樣,所以RS-485可以有效的防止雜訊的干擾。 


 

 

 

 

二、Visual Basic基本概念 

1、 VB是微軟的視窗軟體,提供了很多介面成員。物件、屬性、事件、方法就是四個
重要的介面。 
2、 VB常用控制項。 


2-1標籤控制項 

 


此控制項專用於顯示文字,數位用,顯示如圖 

 

2-2 按鈕控制項 

 

此控制項使用率很高,提供一個供系統用戶操作用的按鈕 

 

2-3 計時器控制項 

 

此控制項的最大作用在於固定的時間內會執行所設置的程式碼一次。 

VB提供了大量的控制項,在此不一一敍述。 

三、MScomm控制項 

要完成VB與PLC等串列設備的通信,MScomm控制項是一個很好用的控制項。
所以在此有必要對MScomm控制項做一個較為詳細的說明 

1、 MScomm非標準控制項,要手動添加,步驟如下: 



1-1選擇功能表的【工程】 

1-2 選擇【部件】 

1-3 在彈出的對話方塊中做如圖選擇 

 

 

 

 

1-4在部件選項卡就會出現MScomm控制項 

 

 

2、基本屬性 

 

 電腦通信口選擇 

 

 通信參數設置 

PortOpen 

通信口是否打開 

 

Input 

收到的字元 

 

Output 

發送的字元 

 

 

 

 

 

 





文本框: 
文本框: 格式 例子 (十六进制)
字头 3A
站号 01
功能码 01
起始地址 06 
14
读取数目 00 
25
LRC 码 BF 


 

 

 

 

 




四、MODBUS ASCII。 

Modbus 分為ASCII和RTU兩種,ASCII採用的格式和校驗相對簡單,本文採用ASCII
格式,並僅對使用的功能碼進行說明,更多的資訊,請參看協定的詳細說明 

1、通信格式 

STX 

起始字元 “:"(3AH) 

ADR 1 

通信地址(站號)採用2個字元 

 

ADR 0 

CMD 1 

功能碼。採用2個字元 

 

CMD 0 

DATA(0) 

資料項目 

 

 

DATA(1) 

………. 

DATA(n-1) 

LRC CHK 1 

LRC 校驗碼。採用2個字元 

 

LRC CHK 0 

END 1 

結束字元。採用2個字元。 

END 1 = CR(0DH),END 0 = LF(0AH) 

END 0 



2、 LRC演算法 
ADR H+CMD H+DATA H,然後取2的補數 




3、功能碼 

 05, 寫入線圈 01, 讀線圈狀態 

格式 

例子(十六進位)

字頭 

3A 

站號 

01 

功能碼 

05 

地址 

05 

 

00 

寫入狀態 

FF 

 

00 

LRC 碼 

F6 



06, 寫入單個字寄存器 

格式 

例子(十六進位) 

字頭 

3A 




站號 

01 

功能碼 

06 

寄存器位址 

06 

 

00 

寫入的資料 

12 

 

34 

LRC 校驗碼 

AD 



五、VB與PLC通信的實現 

 1、控制要求 

 a、控制PLC的啟動、停止,並顯示運行狀態(綠色為運行,紅色為停止) 

 b、能夠用交替型按鈕控制Y0,Y1。並用指示燈顯示Y0,Y1狀態。(綠色為運行,紅色為
停止) 

 c、能夠對D256,D512兩個寄存器進行數值寫入的操作 

 2、思路: 

 a、PLC啟動停止的標誌位元為M1072,查DVP協議,知道位址為H0C30。按功能碼
01操作 

 b、同樣Y0,Y1的地址分別為H0500,H0501。寫入FF00為ON,0000為OFF,按功能
碼05操作 

 c、D256,D512位址分別為H1100,H1200,按功能碼06操作即可 

3、VB介面的設計如圖 

 


 

用按鈕控制PLC的啟動停止,Y0,Y1的ON/OFF以及D256,D512寫完資料的發送 

用Shape元件做指示燈,表示PLC的運行狀態和Y的狀態。 

用timer元件不停的讀取M1072的狀態,以判斷PLC的運行情況 

用MScomm控制項實現PC與PLC的通信 

 

 

4、代碼構成 

 1)、LRC演算法校驗的實現 

Public Function LRC(str As String) As String 

c = 0 

l = Len(str) 

For c = c + 1 To l 

c_data = Mid$(str, c, 2) 

d_lrc = d_lrc + Val("&H" + c_data) 

c = c + 1 

Next c 

If d_lrc > &HFF Then 

 d_lrc = d_lrc Mod &H100 

End If 

h_lrc = Hex(&HFF - d_lrc + 1) 


If Len(h_lrc) > 2 Then 

 h_lrc = Mid(h_lrc, Len(h_lrc) - 1, 2) 

End If 

LRC = h_lrc 

End Function 

 2)、運行的一開始就判斷PLC的狀態,並設置標誌位元 

'初次運行打開串口,並顯示PLC運行狀態 

Private Sub Form_Load() 

Dim s1 As String 

Dim s2 As String 

Dim s22 As String 

Dim s3 As String 

Dim s4 As String 

MSComm1.PortOpen = True 

s2 = "01010C300001" 

s22 = LRC(s2) 

s1 = ":" + s2 + s22 + Chr$(13) + Chr$(10) 

MSComm1.Output = s1 

s3 = MSComm1.Input 

s4 = Mid$(s, 6, 8) 

If s4 = "0C30FF00" Then 

 plc = 1 'PLC為運行標誌 

Else 

 plc = 0 'PLC為停止標誌 

End If 

End Sub 

3)、下面一段為用指示燈表示PLC的運行狀態 

Private Sub Timer5_Timer() 

Dim s1 As String 

Dim s2 As String 

Dim s22 

Dim s3 As String 

Dim s4 As String 

s2 = "01010C300001" 

s22 = LRC(s2) 

s1 = ":" + s2 + s22 + Chr$(13) + Chr$(10) 

MSComm1.Output = s1 

s3 = MSComm1.Input 

s4 = Mid$(s3, 8, 2) 

If s4 = "31" Then 

 plc = 1 'PLC為運行標誌 

Else: If s4 = "30" Then plc = 0 'PLC為停止標誌 

 

End If 


 

If plc = 1 Then 

 Label2.Caption = "PLC正在運行......" 

 Shape1.FillColor = RGB(0, 255, 0) 'green 

Else 

 Label2.Caption = "PLC已經停止" 

 Shape1.FillColor = RGB(255, 0, 0) 'red 

End If 

 

End Sub 

 4)、PLC的啟動與停止 

'啟動PLC 

Private Sub start_Click() 

Dim strout As String 

Timer5.Enabled = False 

str = "00050C30FF00" 'M1072 為PLC啟動停止標誌位元。查地址表,M1072為OC30.FF00
為置ON,0000為置OFF 

 '以上都是固定格式,要牢記 

LRCC = LRC(str) '計算 str的lrc校驗碼 

strout = ":" + str + LRCC + Chr$(13) + Chr$(10) '欲傳送之資料。13為D,10為A 

MSComm1.Output = strout 

Timer5.Enabled = True 

End Sub 

'停止PLC 

Private Sub stop_Click() 

Dim strout As String 

Timer5.Enabled = False 

str = "00050C300000" 

LRCC = LRC(str) 

strout = ":" + str + LRCC + Chr$(13) + Chr$(10) 

MSComm1.Output = strout 

Timer5.Enabled = True 

End Sub 

 Y0,Y1的ON/OFF與PLC啟動/停止的控制方式相同,指示燈的表示方式也相同。D256,
D512資料寫入的操作類似,此處由於篇幅的關係,就不把代碼全部列出。 

六、總結 

 由於VB語言使用的簡易型,為眾多工程技術人員與串列設備的通信提供了很大的方
便。 

 台達PLC採用標準的MODBUS協定,這一協定目前廣為流行,為大家所熟知,也為
大家最終實現通信提供了簡化的平臺。 

 由於台達所有的機電產品都支援MODBUS協定,所以,掌握了VB與PLC通信過程,
也就等於掌握了PC與台達所有機電產品的通信。 

 本文的形成由於時間的關係,也由於筆者的能力所限,難免有不祥之處,也希望大家能


夠不吝指出。 

 

參考文獻 

《VB與RS-232通信實例》 

《VB6從入門到精通》 

《DVP-PLC應用技術手冊》 

《DVP-Protocal》 

 

 

 

 2005-12-18 


流客

  • 精华:1帖
  • 求助:0帖
  • 帖子:7帖 | 252回
  • 年度积分:0
  • 历史总积分:548
  • 注册:2003年10月14日
发表于:2006-11-13 23:57:00
8楼
学习一下.
http://www.lsllhd.com

一见钟情在工控!

  • 精华:0帖
  • 求助:0帖
  • 帖子:3帖 | 129回
  • 年度积分:0
  • 历史总积分:400
  • 注册:2003年12月24日
发表于:2006-11-14 17:09:00
9楼
 PLC协会联盟
群号:23688122
一起交流,软件资料.三菱,台达,西门子,施耐德...

hua71281

  • 精华:0帖
  • 求助:0帖
  • 帖子:21帖 | 1296回
  • 年度积分:0
  • 历史总积分:1509
  • 注册:2004年6月13日
发表于:2007-02-09 17:18:00
10楼
[color=#FF0000]好消息:三菱GX8.26中文PLC软件已通过工控网审核,以下为下载路径:
文件地址:[/color][color=#0000FF]http://download.gongkong.com/file/2007/2/7/MITSUBISHIGX8.26PLC.rar[/color]

万敏

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 36回
  • 年度积分:0
  • 历史总积分:17
  • 注册:2009年6月16日
发表于:2010-06-09 16:24:23
11楼
好像变频器P92设置不正确吧

565684261xieyun

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 2回
  • 年度积分:0
  • 历史总积分:22
  • 注册:2009年5月18日
发表于:2011-06-23 12:43:37
12楼
我也是在搞三菱PLC与台达变频器通信,结果没有成功。台达变频器的说明书上通信格式有点模糊不清,进制也不清。

darwinner3

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 1回
  • 年度积分:0
  • 历史总积分:11
  • 注册:2011年5月09日
发表于:2011-07-30 12:04:32
13楼
看不到图啊。。。看不到图啊。。。看不到图啊。。。

XIAOQIUSHENG

  • 精华:0帖
  • 求助:1帖
  • 帖子:12帖 | 25回
  • 年度积分:0
  • 历史总积分:197
  • 注册:2011年2月23日
发表于:2011-09-07 10:59:52
14楼

回复内容:您 好,请问您 的程序能给我一份吗。我做个参考,我搞了1个月了,都不行,我的510757054@qq.com


对:hanjiang-snow 关于你把这段程序与台达VFD007M23A的通讯资料发到hanjiang-snow@163.com,我帮你看看.我们刚做了三菱fx1n与台达vfd-b变频器之间的通讯 内容的回复:



chengxin112233

  • 精华:0帖
  • 求助:0帖
  • 帖子:2帖 | 12回
  • 年度积分:43
  • 历史总积分:420
  • 注册:2008年11月08日
发表于:2011-09-24 11:11:59
15楼

有做过三菱FA2N PLC与台达变频器VFD_C2000通讯的吗?我遇到些问题想跟大家交流。

QQ435379241.

shenzhishan1979

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 4回
  • 年度积分:0
  • 历史总积分:21
  • 注册:2009年7月22日
发表于:2011-11-14 13:30:44
16楼
PLC与变频器通讯问题请联系:沈工:15919774403      QQ695822592    791404563

电气999

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 30回
  • 年度积分:0
  • 历史总积分:320
  • 注册:2013年8月21日
发表于:2016-04-20 15:34:16
17楼

可以把您的1N与台达的通信程序发给我学习吗?我的邮箱:326107392@QQ.COM先谢谢了


电气999

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 30回
  • 年度积分:0
  • 历史总积分:320
  • 注册:2013年8月21日
发表于:2016-05-03 15:03:30
18楼

你好,可以把你的FX1S与台达VFD-B的程序发送给我吗?我的QQ:326107392先谢谢您!


you22715981

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 4回
  • 年度积分:0
  • 历史总积分:92
  • 注册:2018年3月27日
发表于:2018-04-17 22:30:39
19楼
gzwmy你好!你那三菱PLC与台达变频器通讯的程序搞好没有?能不能给我发到我邮箱来?我的邮箱: 332403676@qq.com

GU9818

  • 精华:0帖
  • 求助:0帖
  • 帖子:1帖 | 55回
  • 年度积分:0
  • 历史总积分:97
  • 注册:2007年9月09日
发表于:2018-11-02 12:16:21
20楼

谢谢分享,好东西。


热门招聘
相关主题

官方公众号

智造工程师
    首页 上一页 1 2 下一页 尾页