首页 上一页 1 2 下一页 尾页

西门子 RS232通信 点击:3951 | 回复:32



canyueweizhui

    
  • 精华:1帖
  • 求助:6帖
  • 帖子:6帖 | 45回
  • 年度积分:0
  • 历史总积分:166
  • 注册:2016年4月21日
发表于:2016-05-17 11:34:36
楼主

我现在有一款西门子S7-200 smart ,想利用他的扩展通信板CM01进行RS232通信,可是外部设备的RS232通信是需要DTR处于高电平,而CM01上根本没有DTR接线端子,这能否进行通信呢?求大神指点!




机器熊

  • 精华:1帖
  • 求助:0帖
  • 帖子:11帖 | 269回
  • 年度积分:0
  • 历史总积分:766
  • 注册:2002年12月05日
发表于:2016-05-17 12:18:39
1楼

把外部设备的DTR和DSR两个脚短接起来应该就行了。

canyueweizhui

  • 精华:1帖
  • 求助:6帖
  • 帖子:6帖 | 45回
  • 年度积分:0
  • 历史总积分:166
  • 注册:2016年4月21日
发表于:2016-05-17 14:33:21
2楼

回复内容:

对: 机器熊 把外部设备的DTR和DSR两个脚短接起来应该就行了。 内容的回复!

 好像没有用。

canyueweizhui

  • 精华:1帖
  • 求助:6帖
  • 帖子:6帖 | 45回
  • 年度积分:0
  • 历史总积分:166
  • 注册:2016年4月21日
发表于:2016-05-17 14:51:05
3楼

应该是需要给外部设备的DTR口供上-3V——-15V 的电压,外部设备才会发送数据,不然无法发送数据,所以只是短接DTR和DSR好像没有用

机器熊

  • 精华:1帖
  • 求助:0帖
  • 帖子:11帖 | 269回
  • 年度积分:0
  • 历史总积分:766
  • 注册:2002年12月05日
发表于:2016-05-17 15:43:36
4楼

回复内容:

对:canyueweizhui 应该是需要给外部设备的DTR口供上-3V——-15V 的电压,外部设备才会发送数据,不然无法发送数据,所以只是短接DTR和DSR好像没有用     内容的回复:

把RTS和CTS也短接试试吧

canyueweizhui

  • 精华:1帖
  • 求助:6帖
  • 帖子:6帖 | 45回
  • 年度积分:0
  • 历史总积分:166
  • 注册:2016年4月21日
发表于:2016-05-17 15:51:56
5楼

回复内容:

对: 机器熊 回复内容:对:canyueweizhui 应该是需要给... 内容的回复!

 也不行

机器熊

  • 精华:1帖
  • 求助:0帖
  • 帖子:11帖 | 269回
  • 年度积分:0
  • 历史总积分:766
  • 注册:2002年12月05日
发表于:2016-05-18 09:13:57
6楼

S7 200 SMART COM1口的3脚是RTS(发送请求)信号,把这个脚跟你外部设备的DTR连接试一下。另外提醒你一下,S7 200 SMART COM1口的针脚定义不是按照规范的9针COM口定义的,2脚是Tx,5脚是Rx,4脚是信号地。所有你做通讯线的时候要确保这三根线正确的连接到你外部设备上了。连接原则是Rx-Tx, Tx-Rx, GND-GND.

canyueweizhui

  • 精华:1帖
  • 求助:6帖
  • 帖子:6帖 | 45回
  • 年度积分:0
  • 历史总积分:166
  • 注册:2016年4月21日
发表于:2016-05-18 10:14:08
7楼

回复内容:

对: 机器熊 S7 200 SMART COM1口的3脚是RTS(发... 内容的回复!

 结果还是没反应,我用万用表测了一下CM01的RTS端电压,发现是0V。是不是应该需要plc执行什么指令,另其有效呢?

我用万用表测USB转RS232的RTS端子发现电压为-9V,DTR也为-9V,而与外部设备工作时,将DTR置位,则DTR为9V。

机器熊

  • 精华:1帖
  • 求助:0帖
  • 帖子:11帖 | 269回
  • 年度积分:0
  • 历史总积分:766
  • 注册:2002年12月05日
发表于:2016-05-18 11:11:55
8楼

晕死,你PLC里面没有编程啊?你这种应用应该是属于S7 200 COM口的自由协议通讯。你是要根据你外部设备的通讯协议编写程序的。你可以把你外部设备的通讯协议发上来,我告诉你需要怎样编写程序。

机器熊

  • 精华:1帖
  • 求助:0帖
  • 帖子:11帖 | 269回
  • 年度积分:0
  • 历史总积分:766
  • 注册:2002年12月05日
发表于:2016-05-18 11:12:55
9楼

 建议先用串口调试工具与你外部设备联调,确保你正确了解了通讯协议,然后再在PLC里编程。

canyueweizhui

  • 精华:1帖
  • 求助:6帖
  • 帖子:6帖 | 45回
  • 年度积分:0
  • 历史总积分:166
  • 注册:2016年4月21日
发表于:2016-05-18 11:18:04
10楼

回复内容:

对: 机器熊  建议先用串口调试工具与你外部设备联调,确保你正确了解... 内容的回复!

 恩,我已经用串口调试工具与外部设备联调好了,没有问题。也用简单的plc自由口协议与pc通讯了,也没有问题。

外部设备采用的通讯协议是Auto1接口协议:

接口把数据发送给PC时所发送的10个字节的构成:

第1字节为“+”或“-”,表示数据的符号

第7字节为小数点“.”

第2到第9的其余字节为数字

第10字节为回车符

这样第1到第9个字节组成ASCII码表示的示值数据

 

例如示值为 12345.67,则接口发送的10个字节为:

2BH 31H 32H 33H 34H 35H 2EH 36H 37H 0DH

   

机器熊

  • 精华:1帖
  • 求助:0帖
  • 帖子:11帖 | 269回
  • 年度积分:0
  • 历史总积分:766
  • 注册:2002年12月05日
发表于:2016-05-18 11:22:49
11楼

接口是定时自动发送数据吗?还是主机发送查询命令后才返回数据?另外外部设备串口的针脚定义是怎样的?

canyueweizhui

  • 精华:1帖
  • 求助:6帖
  • 帖子:6帖 | 45回
  • 年度积分:0
  • 历史总积分:166
  • 注册:2016年4月21日
发表于:2016-05-18 11:26:16
12楼

回复内容:

对: 机器熊 接口是定时自动发送数据吗?还是主机发送查询命令后才返回... 内容的回复!

 

功能概述:ASCII码,主动发送式,不需要主机发送命令。外部设备串口的针脚定义是标准的9针RS232.

Pin Name Dir Description
1 CD <-- Carrier Detect
2 RXD <-- Receive Data
3 TXD --> Transmit Data

4 DTR –> Data Terminal Ready
5 GND —– System Ground
6 DSR <-- Data Set Ready
7 RTS --> Request to Send
8 CTS <– Clear to Send
9 RI <– Ring Indicator

机器熊

  • 精华:1帖
  • 求助:0帖
  • 帖子:11帖 | 269回
  • 年度积分:0
  • 历史总积分:766
  • 注册:2002年12月05日
发表于:2016-05-18 12:03:21
13楼

你好,看了你发上来的资料,我又几条建议:

 1.把外部设备端的通讯口4脚6脚短接,7脚8脚短接,用串口调试工具看能否收到数据。根据我以前调试串口的经验,RS232用3根线通讯时,短接上述两组针脚应该是可以完成握手信号的交互的。

2.上面的步骤主要是测试针对PLC只有Rx,Tx,GND这个针脚的情况下能否收到外部设备发出的数据。

3.如果外部设备每次发来数据的长度是固定的,可以用PLC里面的通讯口接收中断功能来收取数据,当串口收起10个字节的数据后产生中断,在中断程序里对数据进行处理。



canyueweizhui

  • 精华:1帖
  • 求助:6帖
  • 帖子:6帖 | 45回
  • 年度积分:0
  • 历史总积分:166
  • 注册:2016年4月21日
发表于:2016-05-18 13:35:32
14楼

回复内容:

对: 机器熊 你好,看了你发上来的资料,我又几条建议: 1.把外部设... 内容的回复!

 你好,是这样的,我这个外部设备是百分表通过RS232设备(可以算是适配器吧),主动将百分表上的数据传输出来,达到采集数据的功能。现在可以去pc机进行采集。而我现在需要使用plc进行数据采集,但是这个通讯协议必须要DTR置位才行,如果DTR没有置位,外部设备根本不会发送数据。

 我按你的说法试过了如果只是进行短接,是没有办法通信的。所以我再想有没有办法可以使外部设备的DTR端得到所需的电压。

机器熊

  • 精华:1帖
  • 求助:0帖
  • 帖子:11帖 | 269回
  • 年度积分:0
  • 历史总积分:766
  • 注册:2002年12月05日
发表于:2016-05-18 14:11:20
15楼

你好,你的外部设备跟PC机通讯时,通讯线应该是这样连接的吧:


 适配器   PC

   2  --  3

   3  --  2

   4  --  6

   6  --  4

   5  --  5

   7  --  8

   8  --  7

  短接的原理就是在对方设备通讯口针脚不完整的情况下,利用自己的针脚完成握手。


canyueweizhui

  • 精华:1帖
  • 求助:6帖
  • 帖子:6帖 | 45回
  • 年度积分:0
  • 历史总积分:166
  • 注册:2016年4月21日
发表于:2016-05-18 14:15:06
16楼

回复内容:

对: 机器熊 你好,你的外部设备跟PC机通讯时,通讯线应该是这样连接... 内容的回复!

 我就直接将九针头和九孔连接,具体怎么连应该是你说的这样吧

机器熊

  • 精华:1帖
  • 求助:0帖
  • 帖子:11帖 | 269回
  • 年度积分:0
  • 历史总积分:766
  • 注册:2002年12月05日
发表于:2016-05-18 14:19:05
17楼

  最后再给你个建议吧,用RS485/232转换器试一试,把适配器的RS232电平转为RS485后跟PLC相连,看看能否解决DTR无信号的问题。

canyueweizhui

  • 精华:1帖
  • 求助:6帖
  • 帖子:6帖 | 45回
  • 年度积分:0
  • 历史总积分:166
  • 注册:2016年4月21日
发表于:2016-05-18 14:21:32
18楼

回复内容:

对: 机器熊   最后再给你个建议吧,用RS485/232转换器试一... 内容的回复!

 这个我也试过了,用无源的转换器不行,不知道用有源的可不可以

机器熊

  • 精华:1帖
  • 求助:0帖
  • 帖子:11帖 | 269回
  • 年度积分:0
  • 历史总积分:766
  • 注册:2002年12月05日
发表于:2016-05-20 10:24:54
19楼

你好,这两天没有回帖,不知道问题解决了没有。对于你遇到的问题,我觉得无非2个思路,一是从PLC CM01侧找可用的信号,前面我回复过,用CM01的RTS脚,但是我刚才又看了一下资料,CM01这个端口的RTS信号是TTL电平的,不是RS232电平,所以你可以找一个TTL/RS232电平转换器试试。

    另外一条路径就是从适配器侧自己的通讯口里找信号,但你试过DTR与DSR短接后无效,那么你可以用万用表量一下RTS,CTS信号,看哪个脚在COM口空闲的时候有-3V- -15V的电压输出,那么就把该引脚与DTR短接试一下。

初级电工没考上

  • 精华:0帖
  • 求助:0帖
  • 帖子:0帖 | 374回
  • 年度积分:0
  • 历史总积分:896
  • 注册:2007年4月13日
发表于:2016-05-20 10:51:38
20楼

S7 200 SMART COM1上有个5v电源接在6-dsr上


热门招聘
相关主题

官方公众号

智造工程师
    首页 上一页 1 2 下一页 尾页