nomashe123
级别: *
精华主题: * 篇
发帖数量: * 个
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *
最后登录: *
查看nomashe123的 主题 / 回贴
楼主  发表于: 2010-06-02 16:36
我用VB跟FX1N通讯,如(发送置位Y7指令过去),PLC  Y7没有动作,用串口调试助手则正常实现,各位可否指点一二?
对Y7的强制ON指令:02 37 30 37 30 35 03 30 36
请问在VB里面该怎么实现呢?
我自己用VB编写了一个台达的,可以实现
tttaaaggg
级别: *
精华主题: * 篇
发帖数量: * 个
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *
最后登录: *
查看tttaaaggg的 主题 / 回贴
1楼  发表于: 2010-06-02 17:59
你调试的时候有没有提示什么错误

如果没有的话

我以前也遇到
但是重新装VB就好了
xiaoqizi
级别: 论坛先锋
精华主题: 0
发帖数量: 445 个
工控威望: 1314 点
下载积分: 2394 分
在线时间: 713(小时)
注册时间: 2009-07-06
最后登录: 2023-12-04
查看xiaoqizi的 主题 / 回贴
2楼  发表于: 2010-06-02 20:35
应该可以,不知道你的通讯参数是否有可能写错
xiaoqizi
级别: 论坛先锋
精华主题: 0
发帖数量: 445 个
工控威望: 1314 点
下载积分: 2394 分
在线时间: 713(小时)
注册时间: 2009-07-06
最后登录: 2023-12-04
查看xiaoqizi的 主题 / 回贴
3楼  发表于: 2010-06-02 20:38
我刚才用MSCOMM控件,9600,E,7,2,用
Private Sub Command1_Click()
MSComm1.PortOpen = True
MSComm1.Output = Chr(2) + "70705" + Chr(3) + "06"
MSComm1.PortOpen = False
End Sub
FX2NC测试可以正常通讯
nomashe123
级别: *
精华主题: * 篇
发帖数量: * 个
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *
最后登录: *
查看nomashe123的 主题 / 回贴
4楼  发表于: 2010-06-03 09:07
首先,谢谢大家的帮助和关心,刚才我用串口调试助手发现,如果串口调试助手设置是16进制显示则正常,如果不是的话,出现跟VB上一样的情况,一堆符号。所以,我猜想是不是VB里面需要将接受的数据转换成16进制显示?
nomashe123
级别: *
精华主题: * 篇
发帖数量: * 个
工控威望: * 点
下载积分: * 分
在线时间: (小时)
注册时间: *
最后登录: *
查看nomashe123的 主题 / 回贴
5楼  发表于: 2010-06-03 09:55
问题解决了,谢谢各位,尤其是3楼。
说下我的情况:串口调试里面发送02 37 30 37 30 35 03 30 36,情况正常
但是在VB里面发送应该表示为 Chr(2) + "70705" + Chr(3) + "06"
我在VB里面也是发送02 37 30 37 30 35 03 30 36,显示得到
忽视了我做台达的部分经验了,呵呵
串口调试助手发送的是ASCII的16进制数
而VB发送的是直接的ASCII码
为什么是这样的?
是MSCOMM控件本身这样设置的吗?
xiaoqizi
级别: 论坛先锋
精华主题: 0
发帖数量: 445 个
工控威望: 1314 点
下载积分: 2394 分
在线时间: 713(小时)
注册时间: 2009-07-06
最后登录: 2023-12-04
查看xiaoqizi的 主题 / 回贴
6楼  发表于: 2010-06-03 10:29
MSCOMM也可以用二制发送,但是要用数组才行