hsyyqq
级别: *
精华主题: * 篇
发帖数量: * 个
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *
最后登录: *
查看hsyyqq的 主题 / 回贴
楼主  发表于: 2011-05-03 09:53
上位机 我打算用一般的pc机 现在需要跟电脑通信的有 三菱plc(加一个温度模块),还有一款数字千分表(很精密的) 表附带一根RS232通信线,目前我只知道表的通信格式字,其他一无所知,各位大侠 怎么实现pc与plc的通信 还有pc与数字千分表的? 上位机用户软件我打算用vb 来编写,大家看这样行得通不 ?
dream8888
级别: *
精华主题: * 篇
发帖数量: * 个
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *
最后登录: *
查看dream8888的 主题 / 回贴
1楼  发表于: 2011-05-03 09:58
完全行得通!知道通信格式已经足矣!我不知道你想通过上位机来控制还是读取数值!如有不明可联系我QQ434823830
techo
级别: 略有小成
精华主题: 0
发帖数量: 335 个
工控威望: 409 点
下载积分: 1126 分
在线时间: 117(小时)
注册时间: 2010-05-09
最后登录: 2015-11-29
查看techo的 主题 / 回贴
2楼  发表于: 2011-05-03 10:08
很简单呀,上位机可以直接装组态软件,千分表直接和PLC 通讯,就搞顶.
hsyyqq
级别: *
精华主题: * 篇
发帖数量: * 个
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *
最后登录: *
查看hsyyqq的 主题 / 回贴
3楼  发表于: 2011-05-03 10:17
1楼真的吗? 我马上加qq 谢谢 三克油啊。
hsyyqq
级别: *
精华主题: * 篇
发帖数量: * 个
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *
最后登录: *
查看hsyyqq的 主题 / 回贴
4楼  发表于: 2011-05-03 10:19
2楼 组态软件我是不想用了 我用过昆仑组态用起来是方便当时总感觉 不好有缺点 所以我才改成这样的。我已经做过一套了。
hsyyqq
级别: *
精华主题: * 篇
发帖数量: * 个
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *
最后登录: *
查看hsyyqq的 主题 / 回贴
5楼  发表于: 2011-05-04 10:48
昨天开始 写今天 初步写了个代码不过指令发出好像plc没有回应 有懂vb的吗帮我看看
Private Sub Command1_Click()
Dim OutString As String
Dim InString As String
MSComm1.OutBufferCount = 0
MSComm1.InBufferCount = 0
OutString = Chr(2) + "0" + "10f604" + Chr(3) + "74"
MSComm1.Output = OutString
Text1.Text = OutString
Do
  DoEvents
  Loop Until MSComm1.InBufferCount = 12
  InString = MSComm1.Input
  Text2.Text = InString

End Sub

Private Sub Form_Load()

MSComm1.CommPort = 3
MSComm1.Settings = "9600,e,7,1"
MSComm1.PortOpen = True

End Sub
hsyyqq
级别: *
精华主题: * 篇
发帖数量: * 个
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *
最后登录: *
查看hsyyqq的 主题 / 回贴
6楼  发表于: 2011-05-04 17:53
图片:
图片:
好吧在完全不懂的情况下我自己摸索出来了 哈哈今天总算是把数据读出来了 我在网上下了个样例程序就是楼上的结果plc没有返回 我又不懂调试vb这样的程序 后来我想到一个解密用的串口工具 把读取d123 开始的4位数据寄存器数据 指令格式是02h30h31h30h46h36h30h34h03h37h34h 结果发出去得到\STX64000000\ETX8D 中间那个64000000就是d123 d124 d125 d126的内容了 我实现在plc里往d123写入了k100其他就没动。后来我发现vb程序里是不是写入失败了就换了一种方式 不照抄 网上的样例程序了,修改一下


  Private Sub Command1_Click()
Dim OutString(10) As Byte
Dim InString() As Byte
MSComm1.OutBufferCount = 0
MSComm1.InBufferCount = 0
OutString(0) = &H2
OutString(1) = &H30
OutString(2) = &H31
OutString(3) = &H30
OutString(4) = &H46
OutString(5) = &H36
OutString(6) = &H30
OutString(7) = &H34
OutString(8) = &H3
OutString(9) = &H37
OutString(10) = &H34
MSComm1.Output = OutString
Text1.Text = OutString
Do
  DoEvents
  Loop Until MSComm1.InBufferCount = 12
  InString = MSComm1.Input
  Text2.Text = InString
End Sub

Private Sub Form_Load()
MSComm1.CommPort = 3
MSComm1.Settings = "9600,e,7,1"
MSComm1.PortOpen = True
End Sub
写进去之后发现返回出来的数据跟我用串口工具调试的一样 那么说成功了
本来很简单的东西 不过我发现vb里数制什么的好多东西我都忘记了  搞不清楚现在 不过今天是老牛啃草 居然试出来了难道我跟美女聊一下天就有灵感了
另外求师傅一名 帮帮我