技术论坛

应用探讨——S7-200 PLC通信常遇到的问题

作者 主题
奇侠

经验值: 6089
发帖数: 3970
精华帖: 20
主题:应用探讨——S7-200 PLC通信常遇到的问题


只看楼主 只看精华 楼主 2011-05-10 12:57:50
S7-200虽然是小型PLC,却可以支持很多的通信方式。每种通信方式都有自己的特点,比如支持的通信距离、通信站点数、波特率、组态方式、适用范围等;进行这些通信时经常会遇到一些问题,为了更好地应用这些通信,我们可以结合不同的通信方式进行探讨,例如:
1. modbus RTU通信常遇到的问题,比如:modbus功能码、库存储区分配、HMI设备通过modbus协议读取模拟量值;
2. USS通信特点,注意事项;
3. PPI通信有时会有延时,为什么?
4. S7-200能支持怎样的MPI通信,能用MPI方式与PPI主站的S7-200 PLC通信吗?
5. PROFIBUS DP通信主站和从站数据区对应问题;
6. CP243-1能直接跟其它厂家的设备进行以太网通信吗,怎样实现跟S7-300/1200通信?
7. S7-200其它通信注意事项。
提供“下载中心”参考文档如下:
A0136《西门子S7-200 LOGO! SITOP》
A0148《S7-200与S7-300之间的通讯(更新版)》
42122427《适用于工业以太网和信息技术的 CP 243-1 通信处理器》
1109582《S7-200系统手册》

活动奖励:
此次集中交流将持续至7月14日,其中所有精华帖作者将获得加倍精华奖励积分;最终所有有效留帖的网友将获得加倍发帖积分。更多积分带给您更多奖品兑换的自由。
对于有突出发言贡献的网友,还可以在当前的可兑换奖品中免费挑选任一款奖品。
交流结束后也将专门整理重要内容,供广大网友分享参考。
预祝大家交流愉快,收获丰富!
 
以下网友喜欢您的帖子:

  
重要声明:

著作权归作者所有。商业转载请联系作者获得授权,非商业转载请注明出处。

帖子链接:https://www.ad.siemens.com.cn/club/bbs/post.aspx?b_id=3&a_id=843285&s_id=0&num=0

侠圣

经验值: 3469
发帖数: 254
精华帖: 1
回复:应用探讨——S7-200 PLC通信常遇到的问题


只看楼主 只看精华 1楼 2011-05-10 18:06:43
我遇到的200的通信问题主要是软件与硬件的版本匹配,如果Cpu上有Cn字样,就说明是国产的,软件上的语言就要改成中文的。
“吾等定此血盟不为私利私欲,但求团结一致,为社会、为世人成就事业。特此聚合诸位同志,血印为誓”——稻盛和夫
以下网友喜欢您的帖子:

  
游侠

经验值: 513
发帖数: 125
精华帖: 1
回复:应用探讨——S7-200 PLC通信常遇到的问题


只看楼主 只看精华 3楼 2011-05-10 23:52:42
我公司的产品一直在应用s7_200的通讯功能,我觉得200的通讯比较全面,小型机中已是不错了。只是要应用到大系统要求高的地方,还是用300/400更好。
与我公司自己设计的产品,之前也用过自由口协议的,也就是类似RS485挺方便;之后公司设计的产品自己带有DP口,也挺方便,硬件倒处都有,GSD自己修改。
CP243-1 200与300通讯正在应用中,感觉不错。就是200的只有SM0.5做脉冲,想用其他时间脉冲,得自己做一个有点费事。其他还好。
知我者为我心忧,不知我者谓我何求
以下网友喜欢您的帖子:

  
至圣

经验值: 18406
发帖数: 6291
精华帖: 137
回复:应用探讨——S7-200 PLC通信常遇到的问题
精华帖精华帖星级4级


只看楼主 只看精华 4楼 2011-05-11 07:41:22
S7-200与S7-300的MPI通信
MPI(多点接口)是西门子内部使用的通信协议,物理层为RS-485。通过MPI网络的S7基本通信,S7-300可以用系统功能X_GET和X_PUT来读、写S7-200的存储区,最多可读、写76字节的数据,S7-200不需要编写通信程序。其优点是使用PLC自带的RS-485通信接口,不需要增加通信用的硬件,编程简单,容易实现。
1.通信参数的设置
用系统块设置CPU 224在MPI网络中的站地址为3。为了方便下载和监控,将S7-200、S7-300和计算机的通信速率均设置为19.2 kbit/s。需要将系统块下载到CPU,设置的参数才会起作用。
组态时将CPU 315-2DP连接到MPI网络上,设置MPI站地址为2。将设置的参数下载到CPU 315-2DP。
2.CPU 315-2DP读写CPU 224的V区的编程
在CPU 315-2DP的OB35中调用SFC 68“X_PUT”,将本站的DB 1的76字节数据发送到通信伙伴的DB 1的DBB100~DBB175,即CPU 224的VB100~VB175。调用SFC 67“X_GET”,读取CPU 224的VB200~VB275(即DB 1的DBB200~DBB275)中的数据,将它们存放到DB 2。执行OB35的时间间隔为默认的100ms。
下面是CPU 315-2DP的循环中断组织块OB35的程序:
程序段 1:将本站的DB1中的数据写入CPU 224的V区
CALL "X_PUT"
REQ :=TRUE
CONT :=TRUE
DEST_ID :=W#16#3 //S7-200的MPI地址
VAR_ADDR:=P#DB1.DBX100.0 BYTE 76 //S7-200要写入数据的VB100~VB175
SD :=P#DB1.DBX0.0 BYTE 76 //存放本站要发送的数据的地址区
RET_VAL :=MW2
BUSY :=M0.1
程序段 2:读取CPU 224的V区的数据,保存到本站的DB 2
CALL "X_GET"
REQ :=TRUE
CONT :=TRUE
DEST_ID :=W#16#3
VAR_ADDR:= P#DB1.DBX200.0 BYTE 76 //要读取S7-200的VB200~VB275
RET_VAL :=MW4
BUSY :=M0.3
RD := P#DB2.DBX0.0 BYTE 76 //保存读取的数据的地址区
为了验证通信是否实现,在初始化程序OB100将数据块DB 1的76字节数据发送区的字预置为W#16#3333,将DB 2的76字节数据接收区复位为0。
3.CPU 224的程序
为了验证通信是否实现,在CPU 224的OB1中,在第一个扫描周期将发送数据区VW204~VW274预置为16#2222,将接收数据区VW100~VW174清零。
LD SM0.1
FILL 16#2222, VW204, 38
FILL 16#0, VW100, 38
可以用CPU 315-2DP的变量表和CPU 224的状态表来监视参与通信的存储区。
我第1次做实验的时候,很顺利地一下就成功了。总的感觉是只要组态和编程没有问题,通信很容易实现。

追求完美
以下网友喜欢您的帖子:

  
游民

经验值: 110
发帖数: 6
精华帖: 0
回复:应用探讨——S7-200 PLC通信常遇到的问题


只看楼主 只看精华 5楼 2011-05-11 11:01:36
S7-300作为主站与s7-200 EM277作为从站建立通信过程
1 安装GSD文件
2 配置从站
在网络上添加EM277 从站设备
主站通信地址为IB0-IB31,QB0-QB31对应S7-200通信接口区为V区,前32个字节为接收区,后32个字节为发送区
 
以下网友喜欢您的帖子:

  
侠士

经验值: 1957
发帖数: 16
精华帖: 2
回复:应用探讨——S7-200 PLC通信常遇到的问题


只看楼主 只看精华 6楼 2011-05-11 11:26:40
EM277在进行PROFIBUS DP通信时需要在DP主站添加GSD文件,添加后能发现关于通信缓冲区的选择有很多类型,有
Bytes
Words
Byte buffer
Universal module
它们都有什么区别呢?选择时注意什么呢?
 
以下网友喜欢您的帖子:

  
新手

经验值: 17
发帖数: 1
精华帖: 0
回复:应用探讨——S7-200 PLC通信常遇到的问题


只看楼主 只看精华 7楼 2011-05-11 11:29:20
S7-200在做以太网通信时TSAP到底怎么填写呀?总是搞不太清楚。
快乐工作~
以下网友喜欢您的帖子:

  
至圣

经验值: 21150
发帖数: 4995
精华帖: 57
回复:应用探讨——S7-200 PLC通信常遇到的问题
精华帖精华帖星级3级


只看楼主 只看精华 8楼 2011-05-11 11:55:01
和硬件有关的通讯注意事项:
1)使用符合要求的硬件(电缆、插头),并按规范制作
2)保持通讯端口(驱动电路)之间的共模电压差在一定范围内
3)注意防止电磁干扰
PPI网络通讯需要注意事项:
   1)在一个PPI网络中,与一个从站通讯的主站的个数并没有限制,但是一个网络中主站的个数不能超过32个。主站既可以读写从站的数据,也可以读写主站的数据。也就是说,S7-200作为PPI主站时,仍然可以作为从站响应其他主站的数据请求。 一个主站CPU可以读写网络中任何其他CPU的数据。
   2)避免简单地定时激活NetR/NetW:由于串行通讯的特点(如上所述),无法得知何时真正结束。如果定时进行网络读写通讯,必须判断此次通讯是否正常结束
   3)同时有效的NetR/NetW指令不能超过8个,否则通讯请求队列会超出操作系统的管理能力
   4)使用SM0.0调用网络读写指令,虽然能长期工作,但不能超过8个指令,而且会出现监控时指令块变为红色的现象,最好还是加上必要的读写状态判断条件。

The darkness is no darkness with thee.
以下网友喜欢您的帖子:

  
至圣

经验值: 18406
发帖数: 6291
精华帖: 137
回复:应用探讨——S7-200 PLC通信常遇到的问题


只看楼主 只看精华 9楼 2011-05-11 11:58:43
6楼的,由S7-200的系统手册可知,如果选Bytes、Words、Byte buffer,数据的一致性分别是字节一致性、字一致性和缓冲区一致性。我理解一致性是指通信过程中数据的连续性和整体性。

追求完美
以下网友喜欢您的帖子:

  
至圣

经验值: 21150
发帖数: 4995
精华帖: 57
回复:应用探讨——S7-200 PLC通信常遇到的问题


只看楼主 只看精华 10楼 2011-05-11 12:09:46
PPI 是一种主-从协议通信,主-从站在一个令牌环网中。在CPU内用户网络读写指令即可,也就是说网络读写指令是运行在PPI 协议上的。令牌环内需要保证三个字节令牌帧的流动,即时延。当网络取得最小时延即在每个站点都不停留即最小时延8。网络取得最大时延时即在每个站点都停留。有时还可能丢失令牌。
The darkness is no darkness with thee.
以下网友喜欢您的帖子:

  
至圣

经验值: 18406
发帖数: 6291
精华帖: 137
回复:应用探讨——S7-200 PLC通信常遇到的问题
精华帖精华帖星级3级


只看楼主 只看精华 11楼 2011-05-11 12:13:34
通信的转换时间

PPI编程电缆从接收模式切换到发送模式时,需要一定的转换时间。转换时间与波特率有关(见系统手册的表7-11)。
如果在使用自由端口模式的系统中使用PPI电缆,下面的情况必须在用户程序中考虑电缆的转换时间:
(1) S7-200 CPU响应RS-232C设备发送给它的报文
在接收到RS-232C设备的请求报文后,S7-200 CPU发送响应报文的延迟时间必须大于等于电缆的转换时间。
(2) RS-232C设备响应S7-200 CPU发送给它的报文
在接收到RS-232C设备的响应报文后,S7-200 CPU发出下一次请求报文的延迟时间必须大于等于电缆的切换时间。
在两种情况下,延迟使PPI多主站电缆有足够的时间从发送模式切换到接收模式,使数据从RS-485口传到RS-232C口。
在自由口通信编程时,应在适当的时候启用定时中断,来保证收、发模式转换时提供足够的延时时间。

追求完美
以下网友喜欢您的帖子:

  
至圣

经验值: 12236
发帖数: 2431
精华帖: 86
回复:应用探讨——S7-200 PLC通信常遇到的问题


只看楼主 只看精华 12楼 2011-05-11 12:59:20
PPI通信有时会有延时,电缆切换处理需要时间。
如果使用 PC/PPI 电缆在通信时应考虑电缆的切换时间。 S7 -200C
接收到 RS-232 设备的请求报文后,到它发送响应报文的延迟时间必须大于等于电缆的切换时间。
另外,其网络通讯机制采用的是轮寻方式,因此时间上会有一定的延迟。使用用NetR/NetW时,最好还是加上必要的读写状态判断条件,还可以用最简单可靠的方法,是使用Micro/WIN中的NetR/NetW Wizard(网络读写指令向导)。清除网络读写指令数据缓冲区中的(故障)状态字节也可以恢复“死掉”的通信。


 
以下网友喜欢您的帖子:

  
新手

经验值: 12
发帖数: 2
精华帖: 0
回复:应用探讨——S7-200 PLC通信常遇到的问题


只看楼主 只看精华 13楼 2011-05-11 13:59:59
利用s7 200模块cp243与wincc通信时,速度竟然没有PPI快,真是见鬼!~
 
以下网友喜欢您的帖子:

  
新手

经验值: 50
发帖数: 11
精华帖: 0
回复:应用探讨——S7-200 PLC通信常遇到的问题


只看楼主 只看精华 17楼 2011-05-11 15:14:10
200的通信用起来真的很方便。我用USS协议最多一次通信4台420变频器。但是我感觉200的通信抗干扰能力很差。变频器的接地一定要做好通信端子的线头一定要短。不知道各位是不是有这样的感觉
 
以下网友喜欢您的帖子:

  
游士

经验值: 236
发帖数: 145
精华帖: 2
回复:应用探讨——S7-200 PLC通信常遇到的问题


只看楼主 只看精华 18楼 2011-05-11 15:18:09
modbus通信协议
s7-200系列西门子PLC自身支持的modbus的主站和从站功能,不过只有PORT0支持主站功能,指令直接参考帮助文档,西门子帮助文档的modbus程序是很有指导意义的。
modbus 从站:
1.西门子modbus客服端需要首先调用Init指令,Init指令只需要调用一次,采用sm0.1在第一个扫描周期调用即可
2.Mbus_Slave需要在每个扫描周期均调用。
modbus主站:
1.西门子的modbus 服务器端数据读写不区分指令,系统将根据指定的地址来区分读写的是位数据还是双字数据。
2.读写的是位数据时,指定的数据长度为位数,当读写的是双字数据时,指定的数据长度为双字个数!


 
以下网友喜欢您的帖子:

  
游士

经验值: 236
发帖数: 145
精华帖: 2
回复:应用探讨——S7-200 PLC通信常遇到的问题


只看楼主 只看精华 19楼 2011-05-11 15:26:52
以太网通信:
200系列PLC支持的以太网通信需要使用以太网模块CP243-1,可以通过以太网使用向导进行配置,注意的是配置的语言版本至于CPU有关,比如采用的是CN,使用中文,而不关心CP243-1是否为CN。
现在新版的cp243-1支持IT,即你配置时可以采用以太网向导和因特网向导,个人推荐用因特网向导,激活HTTP客户端功能,在IE浏览器中可以通过输入IP来判断是否通信正常,但通信正常时,Http网页中将显示数据。
在使用OPC访问PLC时,注意使用的变量名的不用,使用以太网通信时,变量名得命名如下:"2:192.168.0.2:1011:1000,VD3000,DWORD,RW"
 
以下网友喜欢您的帖子:

  
游士

经验值: 236
发帖数: 145
精华帖: 2
回复:应用探讨——S7-200 PLC通信常遇到的问题


只看楼主 只看精华 20楼 2011-05-11 15:39:56
"2:192.168.0.2:1011:1000,VD3000,DWORD,RW"
其中2表示站地址
192.168.0.2表示PLC的IP地址,注意是PLC的IP地址
1011:1000是根据你的设置写的,其中CP243位于模块0位置,根据指令向导的默认设置时,当远程站号为1011本地站号为1000时,采用上面格式即可。
VD3000为读写数据地址
DWORD为读写数据类型
RW为读写的数据是否为可读可写,此处设置为可读可写




 
以下网友喜欢您的帖子:

  
新手

经验值: 46
发帖数: 3
精华帖: 0
回复:应用探讨——S7-200 PLC通信常遇到的问题


只看楼主 只看精华 22楼 2011-05-11 15:54:16
S7—200的DX数据交换模式,在没有数据处理时,DXMOD指示灯灭,能说明有故障否?
努力学习,会有所得。
以下网友喜欢您的帖子:

  
新手

经验值: 46
发帖数: 3
精华帖: 0
回复:应用探讨——S7-200 PLC通信常遇到的问题


只看楼主 只看精华 23楼 2011-05-11 15:56:35
S7 200CN的编程软件在中英文互换时,对CN的CPU还是不能通用。感觉是个缺陷
努力学习,会有所得。
以下网友喜欢您的帖子:

  
奇侠

经验值: 7344
发帖数: 2057
精华帖: 22
回复:应用探讨——S7-200 PLC通信常遇到的问题


只看楼主 只看精华 24楼 2011-05-11 16:06:40
quote:以下是引用ljs625在2011-05-11 15:56:35的发言:
S7 200CN的编程软件在中英文互换时,对CN的CPU还是不能通用。感觉是个缺陷


sp7及以上的版本就没有这个问题了,不管是在中文还是英文状态下都可以对S7 200 CN的CPU进行下载、上传。
 
以下网友喜欢您的帖子:

  
收起
应用探讨——S7-200 PLC通信常遇到的问题
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。