西门子CPU模块6ES7317-7TK10-0AB0
CP 243-1模块和S7-300系统通讯,为什么可以收到数据,不能写呢?
me:检查程序块的返回值,“ETH0_XFR”块的 “Done” 和 “Error”表明了通讯的状态。
客户:检查ing……130
me: (心里活动:嗨!高兴!常见问题!好解决!)每个“ETH0_XFR”执行一个连接里的一次数据传输(读操作或写操作,每个连接下可组态多个数据传输)同一连接下的多个数据传输不能够执行,也就是说“ETH0_XFR”不能执行多个。第一个方法,可以编写轮询程序解决,也就是说执行完一个在执行第二个…..编程思路…..此处省去1000字;(详细内容可以参考下面文档中Modbus 主站轮询程序)口干ing,喝口水继续…第二个方法,不同连接下的数据传输可以执行,要是懒得再编程,连接资源也富裕,就再建一个连接,分别读写。(心理满足!心想肯定没问题了!)
http://www.ad.siemens.com.cn/download
文档编号:A0136
客户随后就去处理,我想也应该没问题了,于是信心饱满的关掉了这个问题。可是,过了一会儿,电话响起:
客户:程序修改后,报错代码变了。现在报:6号错误。
Me:嗯,于是打开STEP7 Micro/Win 的帮助查看错误描述。一看(心理活动:晕!好抽象的描述)。
(其实6号错误也是通讯过程中容易出现的问题,这是为什么呢?我们打开向导看一看,如下:)通讯对象的数据区是DB76.DBB90-DB76.DBB129 一共40个字节。于是问客户,S7-300站检查过程序吗,DB76是否存在?数据区够不够长?
客户:我只是做200站,也不能确定300站那边的状况,应该没问题吧…..去联系一下对方,稍后打给你。
Me: 好的!(心理-历史再一次证明,做通讯,什么*终要!!答:沟通)
30分钟后,电话响起www.plcs.cn,是做S7-300站的工程师:
客户:咋了!我检查哪部分?(客户有点急)
Me:通讯的数据区您都检查了吗?都存在不?
客户:没问题!
Me: DB76建立了吗?
客户:建立了!
Me: DB76.DBB90在不?
客户:在!
Me:DB76.DBB129在不?
客户:在!…..等等,没建那么长,我不用行不行?
Me: 不行,在向导里设定的数据区必须都要存在。
于是,经过修改,问题解决了!我想,终于解决了!第二天,客户又打过来了电话:
客户:我现在又增加了一个S7-300的站,为什么总连接不上,程序报错:5号。
Me: 老步骤,打开帮助看错误描述。
很明显,和对方的连接没有建立,于是和客户一起检查了所有的参数,都应该没有问题。考虑问题还是出在300站那边。对于S7单边通讯,CP343-1作为服务器会占用CP343-1的一个S7连接资源,还会占用CPU的一个S7连接资源。如果组态的时候把CPU的资源硬性分配给其他通讯,可能会造成通讯资源的不足,如下:此时CPU的8个资源已经固定分配给了PG/OP/S7 basic communication,资源明显不够了。
后来果然经过检查,果然是这个问题。于是问题就解决了!
PLC在实际应用中常碰到这样两个问题:一是PLC的I/O点数不够,需要扩展,增加I/O点数将提高成本;二是已选定的PLC可扩展的I/O点数有限,无法再增加。在满足系统控制要求的前提下,合理使用I/O点数,尽量减少所需的I/O点数是很有意义的。下面将介绍几种常用的减少I/O点数的措施。
1.矩阵输出
图6-17中采用8个输出组成4×4矩阵,可接16个输出设备(负载)。要使某个负载接通工作,只要控制它所在的行与列对应的输出继电器接通即可,例如:要使负载KM1得电工作,必须控制Y0和Y4输出接通。
图6-17 矩阵输出
应该特别注意:当只有某一行对应的输出继电器接通,各列对应的输出继电器才可任意接通,或者当只有某一列对应的输出继电器接通,各行对应的输出继电器才可任意接通,否则将会出现错误接通负载。采用矩阵输出时,必须要将同一时间段接通的负载安排在同一行或同一列中,否则无法控制。
2.分组输出
当两组输出设备或负载不会工作,可通过外部转换开关或通过受PLC控制的电器触点进行切换,PLC的每个输出点可以控制两个不工作的负载。如图6-18所示,KM1、KM3、KM5与KM2、KM4、KM6两组不会接通,用转换开关SA进行切换。
图6-18 分组输出
3.并联输出
当两个通断状态完全相同的负载,可并联后共用PLC的一个输出点。但要注意PLC输出点驱动多个负载时,应考虑PLC输出点的驱动能力是否足够。
4. 输出设备多功能化
利用PLC的逻辑处理功能,一个输出设备可实现多种用途。例如在继电器系统中,一个指示灯指示一种状态,而在PLC系统中,很容易实现用一个输出点控制指示灯的常亮和闪烁,这样一个指示灯就可指示两种状态,既节省了指示灯,又减少了输出点数。
5.某些输出设备可不进PLC
系统中某些相对独立、比较简单的控制部分,可直接采用PLC外部硬件电路实现控制。
以上一些常用的减少I/0点数的措施,仅供读者参考,实际应用中应该根据具体情况,灵活使用。应该注意不要过份去减少PLC的I/0点数,而使外部附加电路变得复杂,从而影响系统的可靠性。