技术论坛

 回复关于200smart Modbus通讯之RS232的那些事

返回主题列表
作者 主题
WWCWWC
至圣

经验值: 72003
发帖数: 8041
精华帖: 145
楼主    2021-01-06 08:44:54
主题:回复关于200smart Modbus通讯之RS232的那些事

回复关于200smart Modbus通讯之RS232的那些事

  今天在“找答案”栏目中看到有一则提问,问题大致意思是组态了一个prot1口的基于RS232与扫描枪的通讯程序,程序基本按官方例子程序编写的,就是无法与扫描枪通讯连接起来,读取扫描枪发送过来的数据。

问题贴链接:http://www.ad.siemens.com.cn/service/answer/solved_246042_1076.html#

   一说起官方提供的那些例子程序,我有部分验证过,均能够正常通讯。而无法通讯的可能原因大多是验证者的硬件连接错误或个别编程时的低级错误引起。所以,我在回复前很自然的想到自己初次验证时可能存在的错误,即外部硬件连接错误。

  提问者他调用的通讯口为prot1,即为200smart 扩展信号板(SB CM01 信号板订货号:6ES7 288-5CM01-0AA0)。该扩展信号板共有6个接线端子,分别为:1#=(系统地)、2#=TX/B(RS232通讯信号正)、3#=RTS、4#=M(信号地)、5#=RX/A(RS232通讯信号负)、6#=5V(一般用于终端电阻的连接电源),200smart也只有扩展信号板通过硬件组态设置为RS232通讯口,集成的RS485口无法通过硬件组态设置为RS232口。

RS485与RS232通讯电平的差异:以prot1通讯信号板接线端子说明。

RS232通讯为通讯信号输出端与M端子之间的电压信号,即通讯时,通讯电平-15V~-5V为通讯电平逻辑1,+5V~+15V为通讯电平逻辑0,最高通讯频率20Kbit/S,通讯距离最长15米,只能实现一对一的通讯模式。

RS485通讯为通讯信号输出差分方式,即端子2#与端子5#之间的电压差。其中,+2V~+6V为通讯电平逻辑1,-6V~-2V为通讯电平逻辑0,通讯频率1200 ~ 115200Bit/S,通讯距离最长50米,可以与最多31个从站实现通讯。

  由此,通过控制信号板CM01连接到扫描枪的RS232通讯接线,必须有2#、4#、5#这3个接线端子与扫描枪的通讯输出端子对接,端子2#、5#交叉,4#对接。提问者没有列举具体的扫描枪,故无法最进一步说明连接方式。这个是我首先怀疑无法通讯,容易出错的地方。

  另外容易出错的地方是定义接收指令的接收信息,接收起始符或者信息定时器。相对起始符容易理解,即plc一直处在接收状态,当plc接收到定义好的起始符(在SMB188中定义字符),即作为接收信息的开始。如果定义接收信息的结束符,那么,同样道理,接收信息接收到结束符即判断为接收信息的结束。提问者没有定义这些起始和结束符,而是调用了信息定时器,即判断信息“串”与信息“串”之间的时间间隔,他定义为5mS在SMW192中),另外,同时定义信息的长度50个字符(这个定义非常重要,是必须要填写的项目之一)。根据他的问题描述,倒推通讯参数的控制字节SMB187的值应该是2#10001000,因为手头上没有通讯电缆,无法测试通讯控制字节的这点差异(通讯控制字节第0位),这个是我第二个疑点。其次,定义接收信息控制字节SMB187,建议定义为2#10010100比较合适。

   还有一个可能出错的原因是定义的SMB130数据,是否与扫描枪的通讯参数保持一致,如果不一致也是造成通讯失败的原因之一。


WWCWWC
至圣

经验值: 72003
发帖数: 8041
精华帖: 145
1楼    2021-01-06 09:10:30
主题:回复:回复关于200smart Modbus通讯之RS232的那些事

因为我没有你的那个扫描枪进行通讯程序的测试,你如果看到此贴,按我的方式排除可能的问题,并测试通讯程序。

苏越0826
游士

经验值: 175
发帖数: 13
精华帖: 0
2楼    2021-01-06 10:59:38
主题:回复:回复关于200smart Modbus通讯之RS232的那些事






您好 我通讯上了但是我觉得应该有瑕疵。但是我扫码串口调试助手接收的对,在程序里接收的是字母f 请问是需要转换ascll码么?另外转换的话您有相关资料吗 学习一下。麻烦了

WWCWWC
至圣

经验值: 72003
发帖数: 8041
精华帖: 145
3楼    2021-01-06 11:11:37
主题:回复:回复关于200smart Modbus通讯之RS232的那些事

这个看你具体扫描枪的数据格式,F字符是第一个数据字符。

转换用项目树下的“转换”指令,一般看看F1帮助基本能够理解了,对于特殊的单独做一下验证。

扫描枪的数据格式是字节单位还是其它格式的?



苏越0826
游士

经验值: 175
发帖数: 13
精华帖: 0
4楼    2021-01-06 14:21:06
主题:回复:回复关于200smart Modbus通讯之RS232的那些事


这是怎么回事啊 用串口调试软件能直接往plc里传,用扫码枪就不行。扫码枪连接串口调试软件也能读到条码信息。扫码枪连plc就不行。

苏越0826
游士

经验值: 175
发帖数: 13
精华帖: 0
5楼    2021-01-06 15:18:22
主题:回复:回复关于200smart Modbus通讯之RS232的那些事

大佬能留个联系方式吗,这边有点着急想尽快解决问题,我看您这边一直没回复想详细咨询一下。我**************************

苏越0826
游士

经验值: 175
发帖数: 13
精华帖: 0
6楼    2021-01-06 15:25:14
主题:回复:回复关于200smart Modbus通讯之RS232的那些事

现在问题就是串口调试软件往plc里写0-9没问题,扫码器扫出来的数字到plc里就乱码,都是ascll。只是往plc写数的环境不一样。

WWCWWC
至圣

经验值: 72003
发帖数: 8041
精华帖: 145
7楼    2021-01-06 15:27:06
主题:回复:回复关于200smart Modbus通讯之RS232的那些事

这样吧,我问你确认,跟着我的思路走。

看找到问题需要几问。

第一问:你定义的SMB130通讯参数与霍尼韦尔扫描枪上设置的通讯参数是否一致?


WWCWWC
至圣

经验值: 72003
发帖数: 8041
精华帖: 145
8楼    2021-01-06 15:33:38
主题:回复:回复关于200smart Modbus通讯之RS232的那些事

你设置的plc侧通讯参数SMB130 = 16#09:

相当于SMB130 = 2# 1001,其中:

通讯频率   自由口协议

  010             01

9600pbs

霍尼韦尔侧你如何设置?

plc侧通讯设置:

无校验、8个数据位、9600pbs、的自由口通讯模式。

您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。