jzylcj
级别: 略有小成
精华主题: 0
发帖数量: 67 个
工控威望: 315 点
下载积分: 493 分
在线时间: 114(小时)
注册时间: 2010-03-10
最后登录: 2024-04-09
查看jzylcj的 主题 / 回贴
楼主  发表于: 2010-04-11 16:26
引言

    在工业生产中,人们常常面临着数据采集与管理。作为工厂自动化的三大支柱可编程控制器PLC(Programmable Logic Controller),由于其安全可靠,广泛的用于数据采集与控制。生产过程中,要监视PLC内部的数据与运行状况,选用市场上的人机界面或组态软件,虽然功能丰富,但大都价格昂贵,在一些中小规模的生产场合,人们希望能自己用高级语言开发一个简易实用的通信程序。使用Visual Basic 6.0,开发串行通信程序时,有两种方法,一种是用Windows API函数,另一种是用VB支持的通信控件MSCOMM。以下介绍使用通信控件方式实现通讯
1.硬件



    采用SC-09编程电缆,连接PC串口与PLC编程口实现通讯。




2.PLC编程口的通信协议简介
    
    通信格式:
    
    波特率9600,偶校验,8位数据位,一位停止位。 具体请参考有关资料,以下举例说明其通讯格式 PLC资料网 http://www.plcclub.com

    1)、DEVICE READ(读出软设备状态值)

    计算机向PLC发送:
    

3.具体程序说明


    MSComm控件简介用来提供简单的串行端口通信功能,也可以用来创建功能完备、事件驱动的高级通信工具。Mscomm控件提供了一系列标准通信命令的使用界面。使用它可以建立与串行端口的连接,通过串行端口再连接到其它设备(如调制解调器、PLC),发出命令,交换数据,以及监视和响应串行连接中发生的事件和错误。

    数据读与写采用函数input和output

(1)窗口加载程序
    Private Sub Form_Load()
    MSComm1.CommPort = 1 ‘选择COM1口
    MSComm1.Settings = "9600,e,7,1"
    If mscomm1.portopen=false then mscomm1.portopen=true
    End Sub

(2)数据读取子程序:

    Public Function GetData(ByVal StartAddress As String, ByVal GetBytes As     Integer, ByVal Hex_Bytes As String) As String
    MSComm1.InputLen = GetBytes * 2 + 4
    MSComm1.Output = STX + CMD_Read + StartAddress + Hex_Bytes + ETX + GetSumChk(CMD_Read + StartAddress + Hex_Bytes + ETX)
    ‘传送数据组成:起始符+命令+首地址+数据位+结束符+和检验码
    GetData = MSComm1.Input
    MSComm1.InBufferCount = 0


    MSComm1.InputLen = 0
    End Function

)
libzch
级别: *
精华主题: * 篇
发帖数量: * 个
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *
最后登录: *
查看libzch的 主题 / 回贴
1楼  发表于: 2010-11-15 17:05
学习了,好东西
刘长城
级别: 略有小成
精华主题: 0
发帖数量: 173 个
工控威望: 287 点
下载积分: 2377 分
在线时间: 116(小时)
注册时间: 2009-08-27
最后登录: 2021-04-29
查看刘长城的 主题 / 回贴
2楼  发表于: 2010-11-15 19:12
路过 顶一下
lljwtt
级别: 家园常客
精华主题: 0
发帖数量: 449 个
工控威望: 564 点
下载积分: 6329 分
在线时间: 227(小时)
注册时间: 2008-11-14
最后登录: 2024-01-27
查看lljwtt的 主题 / 回贴
3楼  发表于: 2010-11-16 22:35
清晰命了,学习了
赵新洲
级别: 略有小成
精华主题: 0
发帖数量: 168 个
工控威望: 213 点
下载积分: 17857 分
在线时间: 36(小时)
注册时间: 2021-08-11
最后登录: 2024-04-19
查看赵新洲的 主题 / 回贴
4楼  发表于: 2021-08-28 21:58
谢谢楼主威武
加勒比海带
级别: 论坛先锋
精华主题: 0
发帖数量: 2123 个
工控威望: 1771 点
下载积分: 6390 分
在线时间: 57(小时)
注册时间: 2021-07-19
最后登录: 2024-03-06
查看加勒比海带的 主题 / 回贴
5楼  发表于: 2021-10-22 17:08
谢谢楼主分享,
加勒比海带
级别: 论坛先锋
精华主题: 0
发帖数量: 2123 个
工控威望: 1771 点
下载积分: 6390 分
在线时间: 57(小时)
注册时间: 2021-07-19
最后登录: 2024-03-06
查看加勒比海带的 主题 / 回贴
6楼  发表于: 2021-11-05 09:13
感谢楼主无私分享