西门子PLC的命名规则
我们以6ES7 221-0BA23-0XA0来说明:
6ES----表示自动化系统系列
7------7:S7系列,5:S5系列
2------2:200系列,3:300系列,4:400系列
2------1:CPU,2:DI/DO,3:AI/AO,4:通讯模块,5:功能模块
1------1:输入,2:输出,3:输入输出(对于数字量),4:输入输出(对于模拟量)
0BA----表示输入/输出电压等级,类型,点数等,这个比较多,还是查样本比较好
23-----版本,如果后一位数字不同,基本上可以通用
0XA0-----表示德国制造
0XA8-----表示中国制造
电源电压 | ||
负载电压 L+ | ||
● 额定值 (DC) | 24 V | |
● 反极性保护 | 是 | |
输入电流 | ||
来自电源电压和负载电压 L+(空载),大值 | 200 mA; 额定负载时:大值 400 mA | |
来自背板总线 DC 5 V,大值 | 150 mA | |
功率损失 | ||
功率损失,典型值 | 9 W | |
模拟输出 | ||
模拟输出端数量 | 8 | |
电压输出,短路保护 | 是 | |
电压输出,短路电流,大值 | 30 mA | |
电流输出,空载电压,大值 | 19 V | |
输出范围,电压 | ||
● 0 至 10 V | ||
● 1 V 至 5 V | ||
● -10 V 至 +10 V | ||
输出范围,电流 | ||
● 0 至 20 mA | ||
● -20 mA 至 +20 mA | ||
● 4 mA 至 20 mA | ||
负载电阻(在额定输出范围内) | ||
● 电压输出端的小值 | 1 kΩ | |
● 电压输出端的电容负载,大值 | 1 µF | |
● 电流输出端的大值 | 500 Ω; 共模电压减小到 < 1 V 时为 600 欧姆 |
单个功能区域的描述 在过程内描述每个区域和任务时,不仅需要定义每个区域的操作,还需 要定义控制该区域的不同元件。这些元件包括:① 每个任务的电气、机械和 逻辑输入或输出;② 单个任务之间的互锁和相互关系。 上述工业混料控制过程实例使用泵、电机和阀。需要准确描述识别操作 期间所要求的操作特性和互锁类型。下面提供了描述工业混料控制过程中所 使用设备的实例。描述完成后,也可以使用它来订购需要的设备。 (1)配料 A/B 进料泵的描述。 ① 进料泵将配料 A 和 B 传送到混料罐。进料流速为 400gal/min,进 料泵额定值为转速 1200r/min、功率为 100kW。 ② 通过混料罐附近的操作员站控制泵(启动/停止)。计数启动次数以用 于保护。可通过一个按钮将计数器和显示器复位。 ③ 要操作泵,必须满足以下条件:a.混料罐不满;b.混料罐的排料阀闭 合;c.没有激活紧急断电。 ④ 如果满足以下条件,泵将关闭:a.启动泵电机 7s 后,流量计指示无 流量;b.流量计指示停止流动。 (2)配料 A/B 入口和进料阀的描述。 ① 配料 A 和 B 的入口阀和进料阀可允许或防止配料流入混料罐中。阀 有一个具有弹簧复位的螺线管。要求:a.激活螺线管时,打开阀;b.取消激 活螺线管时,关闭阀。 ② 由用户程序控制入口阀和进料阀。 ③ 要激活阀,必须满足下列条件:进料泵已经运行 1s 以上。 ④ 如果满足下列条件,泵将关闭:流量计指示无流量。
在实际应用过程中,某些时候可能会采用VB/DELPHI/VC等语言,自主编程与西门子PLC进行通讯,这类帖子、论文在网上都可以找到,在此总结一下。
1、Prodave通讯
Prodave是西门子提供的一个软件包,为语言编程和plc通讯提供接口。
通讯接口:MPI
因为MPI口是每块cpu的编程口,所以plc不需要另外添加通讯模块,这个方案就比较经济,而且prodave软件包里面附带了example和详细的说明,用起来应该比较简单和方便(本人只匆匆看过文档,没有实验过)。这方面的资料在百度上很多。当然,mpi的速度是有限的,如果采用普通的pc adapter连接pc和plc,高速度也就38.4kbps,我不知道prodave能否支持mpi卡(5611之类的话),如果可以的话速度可以达到187.5kbps。
2、串行通讯
看到过一些论文,采用串行通讯的方法实现pc和plc通讯。这种情况存在几点要求:
a、需要为plc添加一块串行通讯模块,比如300的话就需要cp340或者cp341(前者便宜些);
b、plc里面需要对串行通讯进行编程,其实也就是接收报文和发送报文,调用fb2/fb3(cp340的话)。
c、串行通讯的速度是有目共睹的,而且cp340或者cp341的数据吞吐量也是有限的,即报文长度是有限制的,因此个人认为通讯数据量大的话采用串行通讯就不合适了。
d、报文格式的话就比较自由,但是也应当合理,我虽然没有具体实验过,但是个人认为可以参考modbus的报文结构来编程,甚至就采用modbus的规范,不过这样的话要求编程者对pc和plc侧的modbus编程都要熟悉。
3、OPC
Opc是这些年来很流行的东西,其实我很讨厌opc的安全认证的设定。不过采用opc编程来访问plc真的是一件非常轻松惬意的事情。你需要做的就是了解opc的结构和编程,尤其是采用vb来编写opc简直是件傻瓜化的工作当然也牺牲了很多。
前面我实验了用vb通过opc(以太网)来访问300,包括用西门子的simaticnet提供的opc接口和第三方的kepserver。
采用opc接口编程的优点:通讯速度快,编程简单。
4、以太网编程
采用以太网编程访问plc,其实又可以分为两种:
一种是socket接口,需要在plc里面编程进行收/发,大概是fc5/fc6吧,印象不深了,当然plc里面要定义一个connection,填好地址、端口号之类的信息,这个对于熟悉西门子工业通讯的人是很easy的事情。Pc侧采用socket接口编程,简单的就是vb里面的wisock控件,当然这掩盖了很多细节。Socket编程本来就是一门艺术,讲究说学逗唱:)
这个方法的优点应该是pc侧编程稍微简单点(相对于后一种),而且可以不局限于bbbbbbs平台,因为socket接口被诸如unix支持的更好。
第二种是采用西门子的sapi接口函数,这样plc里面不需要过多的编程了,当然pc侧的编程难度就比较高了,ms只能用c来写,所以我望而却步鸟。看过相关帖子和论文,有高人在项目里面就这么干的,而且数据量很大,看来高人很多很多啊,向他们致敬!关于sapi的资料其实都在simaticnet软件光盘里面,有兴趣的可以去找来看看。