会员登陆会员注册论坛菜单论坛样式查看帮助

东莞自动化论坛
  你的位置:东莞自动化论坛 → 工业自动化 → 浏览帖子:FX系列PLC与VB的通讯编程[转帖]
FX系列PLC与VB的通讯编程[转帖] --东莞自动化论坛--工控论坛|www.dgzdh.com
发表一个新主题 开启一个新投票 回复些主题 你是本帖的第 1955 位阅读者
 『 帖子主题 』:FX系列PLC与VB的通讯编程[转帖]

耕心


帮派:工业自动化
金钱:146430
经验:9335
魅力:34557
帖数:314


『 管理员 』
  信 息  留 言  OICQ  邮 箱  主 页  编 辑   引 用楼   顶

FX系列PLC与VB的通讯编程[转帖]


由于Visual Basic6.0具有可视化,支持面向对象的程序设计,具有结构化的事件驱动编程模式,编程效率高等优点,所以我们VB6.0提供串口通信控件MSComm来进行通信编程。在VB6.0的开发环境中MSComm控件可直接从VB的ToolBox中加入窗体Form,即可用其进行通信。

  MSComm控件有很多重要属性,其中最主要的有:① Comm Port:设置并返回通信端口号。② Settings:设置串口的通信参数,以字符串的形式设置并返回波特率、奇偶校验、数据位、停止位。③ PortOpen:设置并返回通信端口的状态,并强行打开和关闭端口。④ Input:从接收缓冲区读取数据。⑤ Output:向输出缓冲区写入数据。⑥ InBufferCount:接收缓冲区中的字节数。⑦ InputLen:设置并返回Input每次读出的字节数。

  MSComm控件同时支持事件驱动及查询方法,在本系统中,我们采用查询通信方式,通过检查InBufferCount属性值来判断输入缓冲区中是否接收到相应的数目字符。PLC通信模块设置为波特率:9600,数据位:8,停止位:1,可以在线写;不进行字符的奇偶检验和报文的和校验。以下是计算机读取1#站PLC数据寄存器DO的内容和将计算机时钟值写入PLC计数器C250中的程序。

(1)窗口加载程序
Private Sub Form-Load()
MSComm1.CommPort=2 '选择通信端口2'
MSComm1.Settings="9600,N,8,1"
'设置端口参数:传输速率9600,无校验,8位数据,1位停止位'
END Sub

(2)读取1#站PLC数据寄存器DO的内容
指令序列代码格式为:ENQ 01 FF WR 0D000 01 CR LF
Private Sub CommandRead-Click()
If MSComm1. PortOpen=False Then
'MSComm1. PortOpen=True'打开串行端口'
END If
MSComm1. Inputlen=0'串行数据接收缓冲区初始化'
rd $=Chr $(5)+"01FFWR0D000001"+ Chr $(13)+ Chr $(10)
'准备向PLC发送的读取数据命令字符串'
MSComm1. Output=rd $
'向PLC发送该字符串'
Dummy=DOEvents=()
Loop Until MSComm1. InBufferCount>=9
rdh $= MSComm1. Input
'读取接收缓冲区数据'
pd $=Mid $(rdh $,1,5)
'取PLC应答字符串的前5位'
If pd $=chr $(2)+"01FF"Then
'判断读取是否正确'
js $ =chr $(06)+"01FF"
'向PLC发送已正确接收数据信号'
MSComm1. Output=js $
rdh $=Mid $(rdh $,6,4)'检出DO内数据并将其转化为十进制数'
rdh =Val("&H"+ Trim(rdh $))
x =MsgBox("读取正常",16)
Else
x =MsgBox("读取数据错误!",16)
END If
END Sub

(3)将计算机时钟值写入PLC计数器C250中
指令序列代码格式为:ENQ 01 FF WW 0CN250 01 CR LF
Private Sub CommandWrite-Click()
If MSComm1. PortOpen=False Then
MSComm1. PortOpen=True'打开串行口'
END If MSComm1. In putLen=0'串行数据接收缓冲区初始化'
szt $ =Trim(str(Int(Timer/60)))
xr $ =Trim(Str(Val(Space(4-Len(szt $))))+ Hex(Val(szt $)))
'取上位机时钟值将其转化为PLC要求的格式'
wr $ = Chr $(5)+"01FFWW0CN25001"+ xr $ + Chr $(13)+ Chr $(10)
'准备向PLC发送的写入数据命令字符串'
MSComm1. Output = wr $
'向PLC发送该命令字符串'
DO '等待接收PLC回答的字符串'
Dummy = DO Events = ()
Loop Until MSComm1. InBufferCount>=5
fh $ = MSComm1. Input '读取接收缓冲区数据'
jc $ = Mid $(fh $,1,5) '取PLC应答字符串的前5位'
If jc $ = chr $(6)+"01FF"Then '判断写入是否正确'
x = MsgBox("写入正常!",16)
Else
x = MsgBox("没有正确写入!",16)
END If
END Sub

(4)通信关闭程序
Private Sub CommandClose-Click()
If MSComm1. PortOpen = True Then
MSComm1. PortOpen = False '关闭串行端口'
x = MsgBox ("关闭通信!",16)
END Sub


————————————————————
欢迎光临东莞自动化网!
http://www.dgzdh.com
状态:
2004-05-21 04:11:54 帖子管理:总置顶置顶取消精华加锁删除移动

timzhou81


帮派:自动化
金钱:1050
经验:208
魅力:208
帖数:1

『 新手上路 』
  信 息  留 言  OICQ  邮 箱  主 页  编 辑   引 用A 栋 9 楼

                


请问PLC需要设置哪些寄存器


————————————————————
东莞自动化网
http://www.dgzdh.com
状态:
2004-05-27 19:47:36删除

wys-3638


帮派:无
金钱:20
经验:7427
魅力:4667
帖数:65


『 新手上路 』
  信 息  留 言  OICQ  邮 箱  主 页  编 辑   引 用A 栋 8 楼

                


学习中.


————————————————————
东莞自动化网
http://www.dgzdh.com
状态:
2004-06-14 07:28:55删除

jerryme


帮派:自动化
金钱:1150
经验:224
魅力:224
帖数:30

『 新手上路 』
  信 息  留 言  OICQ  邮 箱  主 页  编 辑   引 用A 栋 7 楼

                


good


————————————————————
东莞自动化网
http://www.dgzdh.com
状态:
2004-06-24 20:05:08删除

小杨


帮派:自动化
金钱:1270
经验:1224
魅力:1304
帖数:44

『 论坛游侠 』
  信 息  留 言  OICQ  邮 箱  主 页  编 辑   引 用A 栋 6 楼

                


谢谢!!!


————————————————————
东莞自动化网
http://www.dgzdh.com
状态:
2004-08-22 16:43:05删除

愚公


帮派:自动化
金钱:1290
经验:238
魅力:248
帖数:6

『 新手上路 』
  信 息  留 言  OICQ  邮 箱  主 页  编 辑   引 用A 栋 5 楼

                


对三菱PLC编程口通信时,X Y M D等软元件的地址怎没算,我知道Y1发送地址“0105”,那么Y0发什么呢?


————————————————————
东莞自动化网
http://www.dgzdh.com
状态:
2004-12-31 09:26:42删除

hanfeng79


帮派:工业自动化
金钱:9280
经验:988
魅力:1783
帖数:148

『 侠之大者 』
  信 息  留 言  OICQ  邮 箱  主 页  编 辑   引 用A 栋 4 楼

                


谢谢!


————————————————————
东莞自动化网
http://www.dgzdh.com
状态:
2005-10-17 23:07:52删除

826.cn


帮派:工控
金钱:1050
经验:208
魅力:208
帖数:2

『 新手上路 』
  信 息  留 言  OICQ  邮 箱  主 页  编 辑   引 用A 栋 3 楼

                


ok


————————————————————
东莞自动化网
http://www.dgzdh.com
状态:
2005-11-13 12:52:15删除

yogidm


帮派:自动化
金钱:1100
经验:216
魅力:216
帖数:9

『 新手上路 』
  信 息  留 言  OICQ  邮 箱  主 页  编 辑   引 用A 栋 2 楼

                


谢谢!!!


————————————————————
东莞自动化网
http://www.dgzdh.com
状态:
2008-02-09 12:14:06删除
共有 1 页, 8 张回复帖,每页有 10 张贴子 >> [ 1 ]
页码:
  快 速 回 复

用户信息:

用户名: 没有注册?密码: 忘记密码?

帖子内容:
·HTML标签: 不可用
·UBB标签: 可用
·贴图标签: 可用
·Flash标签:不可用
·表情字符转换:不可用
·最多15KB

[按 Ctrl+Enter 直接发送]




电话:0769-22723100 传真:0769-22465296  版权所有:东莞自动化论坛  
页面执行次数:18119233次  执行时间:3,621.094 毫秒