说到S7-300,那是我最熟悉的伙伴! 1997年底进入西门子后负责支持的产品就是S7-300。说到S7-300系统,具有强大的通信功能,通过CP模块支持PROFIBUS和以太网的多种通信服务;通过FM模块可以扩展多种工艺控制。虽然属于中型系统,除了通信资源数量和可连接点数外,功能一点也不亚于S7-400这样的大型控制系统,除此之外还有一些特殊的功能,例如西门子操作面板通过MPI接口可以直接路由到一些具有定位功能的FM上,即使CPU处于STOP模式,也可以直接控制设备的运行,所以当时S7-300就是市场上的爆款,都说CPU315-2DP就是提款机。从学习的角度上看,使用S7-300制作演示设备携带也比较方便;学会S7-300的编程、通信、FM后可以直接使用S7-400,即使看第三方PLC的手册也很容易。每次现场调试看到S7-300都感觉非常的亲切,因为这个我会,其它的产品不熟悉呀!这么多年来我一直把S7-300当做我的伙伴,工作和生活(工程师在一起,平时聊天也都是技术问题)都离不开呀,虽然它不会说话。作为一个伙伴,你越熟悉它,它就能给你更多的帮助,如果有些地方你不关心它,它也会让你吃瘪,下面就是我在工作中遇到两次吃瘪的故事。
故事1- 学习不到位,丢了项目
刚工作不久,和销售一起投标一个水厂项目并做方案配置。水厂中分布着许多控制站,每一个分布站点最多一百多个I/O点,所以使用S7-300就足够了。估计受到竞争对手的影响,标书竟要求每一个站点最大可带4000个I/O点,看来竞争对手也对S7-300比较了解,从样本手册上对比了两者的优缺点后才有了这样的要求。当时S7-300最大的I/O空间是128个字节输入和128个字节输出,所以最大是2048个点,加上模拟量通道也远远满足不了标书的要求。没有办法,只能选择S7-400站点了,所有相对应的模块都比S7-300的贵,结果可想而知,价格上就不占优势了。配置的方案最终被淘汰了,虽然投标一个项目有各个方面的因素,但是技术方案是不容忽略的。
之后又遇到了一个小问题,用户使用CP342-5连接ET200M远程站点,配置完成并下载后怎么也不能建立通信连接。接到这个问题后我也做了测试,与用户遇到的问题一样。最后读手册才知道需要调用“DP_SEND”和“DP_RECV”程序块才能建立通信,在调试的过程发现CP342-5连接I/O占用的是虚拟地址空间,不占用原来128个字节输入和128个字节输出的地址空间,所以可以在原来的基础上额外扩展1024个字节的I/O空间。如果早知道这些知识,当初水厂投标还不一定会怎么样呢。真是你越和它熟悉,它就越能给你更多的帮助!
故事2- 程序不能保持
今天看到“技术论坛有奖征文”海报中的展示的一款CPU,我一看就知道是CPU 314C,它的前身是CPU 314 IFM,有一次就吃亏在它的小兄弟CPU 312IFM身上。早期通用型S7-300 CPU 可以通过电池和Flash卡保持程序(与S7-400 不一样,没有外置RAM卡,究其原因就是S7-300 CPU集成的下载存储器比工作存储器大,而S7-400 CPU正好相反,所以没有外置的RAM卡调试起来非常不方便),所以大脑一直就留有这样的观念。有一次一个用户打电话反应问题,说是程序下载到CPU 312IFM后,断电后再上电发现程序丢失了,测试了好几次都是相同的结果,我第一感觉就是不可能的,肯定操作有问题。正好在库里找到一个相同型号的CPU,就约用户到办公室一起测试。现在库里还保留当年测试的CPU,如图1所示。

图1 CPU 312IFM
也没有提前准备,等用户来了,才发现这款CPU居然没有插电池和FLASH卡的孔位和插槽,难道有内置了电池?或者电池没有电了?和用户一起测试了几次,掉电后确实不能保持程序,我的CPU与用户的CPU现象是一样的,不可能两个CPU的电池都没电了,还是有其它的原因,没有办法,送走用户后加班看手册。西门子手册也是很多的,当时还没有经验,要找到想要的也需要花费一些时间。很晚的时候才找到答案,原来这款CPU没有电池,使用内置了ROM用于保存程序。程序下载后只存储于工作存储器中,掉电后再启动由于没有电池肯定会丢失的,还需要执行“Copy RAM to ROM”指令,才能将程序存储到ROM中,如图2所示。

图2 将程序存储于ROM中
使用STEP7时还经常纳闷这个操作是干什么的,现在算是明白了。这件事也给我一个警醒,就是在没有看手册之前不要想当然凭借经验回答问题。
上面只是工作中使用S7-300 普通的两个小故事,看海报才知道S7-300要退市了,真是感慨万分!它陪我度过了大部分的工作时间,我没见证它的诞生,但是经历它的了成长、壮大、强盛和辉煌,在它最壮丽的时刻将接力棒交到了S7-1500手里,以后可能见面的机会会越来越少,但是它传承的知识将一直保留!