西门子S7-200 PLC 学习笔记【工控老鬼转载】
原文转载于中国工控网论坛,感谢原文作者的总结,总结的正确性先且不谈,学习就需要这种精神!原文地址:http://bbs./Details/201210/2012103018330300001-1.shtml
声明:以下资料摘自1.西门子200那个深入浅出 2. 200那个《Micro ‘n
Power> 3.廖老师编写的那个《PLC编程及应用》4.200的编程手册以及编程软件帮助
5.看过的各种讲S7-200PL的书籍。
(一)
问题自由口通信功能的用途:
1.
通过RS-232或RS-485串口连接多种智能仪表或RTU,根据智能仪表或RTU定义的通信协议编写用户程序与智能仪表或RTU通信
2.使用USS协议与西门子MicroMaster系列变频器通信,STEP7-Micro/WIN提供USS协议库,S7-200
CPU是主站,变频器是从站。
3.
创建用户程序来模拟另外一种网络上的从站器件。例如S7-200的用户程序模仿一个Modbus从站。STEP7-Micro/WIN提供Modbus协议库。
4.
采用自定义通信协议与PC通信。PC上的应用软件可以采用此方法方便的访问S7-200的数据。这曾经是第三方软件访问S7-200PLC比较简便,廉价的方法。不过现在西门子提供了PC
ACCESS软件,一个连接S7-200系列PLC的OPC服务器。这是PC与S7-200PLC连接更好的选择。
(二) 问题
S7-200 的内存格式与我们常用的 PC
机正好相反,它是高字在前,低字在后的。所以我们可以将字变量放在后两个字节,在程序初始化时将前两个字节清零(程序的其它地方不得使用这两个字节)。
如我们定义符号时将字变量定义在 VW2,同时保持 VW0 的值为零。则程序中可以用 VW2 以字型访问该变量,同时也可以 VD0
以双字型访问,避免了类型转换。
为了避免使用时混淆,最好以明确的符号定义来区分字类型和双字类型。在此强烈推荐类匈牙利命名法:以前缀指示变量类型,用首字母大写的有意义的英文单词的组合作变量名。本人习惯用以下缀:
b ---- 字节型变量(byte)
w ---- 字型变量(word)
d ---- 双字变量(double)
r
---- 实型变量(real)
f ---- 位变量(flag)
btn --- 自复位按钮式输入(button)
sw ---- 切换开关或自锁按钮输入(switch)
sig --- 传感器、编码等电平信号输入(signal)
rly --- 输出继电器位(relay)
……
当然,这个根据个人习惯来,没有定则,主要是利于自己区分。
假如有一个字类型变量名为 VarName,为使用前面的转换技巧,我们可以这样定义:
wVarName ---- VW2
dVarName
---- VD0
在程序初始化时将 VW0 清零(如果是不需要记忆的变量,直接将 dVarName 清零也可)或者在数据块中将 VW0
设置为零。则以后需要以字类型访问变量时就用 wVarName,需要以双字类型访问变量时就用
dVarName。完全不需要类型转换。
本方法可以极大的减少程序语句数,使程序更简洁、可读性更好,由于不需要做耗时的类型转换,程序运行效率也得到提高。且数学运算量越大,效率提高越明显。
缺点是要多占用两字节的内存,以后程序中不能使用 VW0。但 S7-200 的 RAM 空间很大,一般是用不完的,以 226
为例,有多达 10K 的 RAM,偶从来没有超过 1K。 这些 RAM
都是花钱买来的,不用白不用,不用也是浪费了。
同理,如果有字节型变量经常需要与字类型变量相互转换,让字节变量占用一个字的内存宽度浪费一个字节,避免类型转换。
(三) 问题
S7-200 CN CPU 必须配合 STEP 7-Micro/WIN V4.0 SP3 或以上版使用。STEP
7-Micro/WIN V4.0 SP3 配合 S7-200 CN 使用时,必须设置语言环境为中文才能正常工作。
STEP 7-Micro/WIN V4.0 SP3 离线编程时不能在“PLC > 类型”中选择到
S7-200 CN CPU。用户可以选择相应的 SIMATIC S7-200 CPU,并选择 CPU 固件版本号为
2.01。在线通信时,Micro/WIN 可以自动识别 S7-200 CN CPU。
PC Access 使得S7-200与PC机间的数据交换简单而完美。PC Access
作为S7-200的OPC服务器,也就是说:
使用MS Excel可以读/写S7-200的数据
ProToolPro,
WinCC flexible RT, WinCC,
WonderWare等
可以作为OPC客户端访问S7-200
可视化的界面
支持以下任一种连接方式,最多可建立8个通信连接(连接8个CPU):
PPI(智能多主站电缆)
Modem(EM241)
Ethernet/IT CP(CP243-1,CP243-1
IT)
PC Access将取代老的S7-200 OPC Server。
(四) 问题
如果在不同的数据分页中定义的数据地址重叠,编译时Micro/WIN会自动指出以避免错误。在消息输出窗口中用鼠标双击错误提示文字会自动跳到相应出错的地址。
CPU22x的版本21——22——23版。
注意:在给CPU进行供电接线时,一定要特别小心分清是哪一种供电方式,如果把220VAC接到24VDC供电的CPU上,或者不小心接到24VDC传感器输出电源上,都会造成CPU的损坏。
S7-200 CPU的中央处理芯片数据长度为32位。
从CPU累加器AC0/AC1/AC2/AC3的数据长度也可以看出。
(五) 问题
表1. CPU的供电能力
CPU型号
|
电流供应
|
+5VDC
|
+24VDC
|
CPU221
|
0 mA
|
180mA
|
CPU222
|
340 mA
|
180mA
|
CPU224/224 XP
|
660 mA
|
280mA
|
CPU226/226 XM
|
1000 mA
|
400mA
|
表2. CPU上及扩展模块上的数字量输入所消耗的电流
CPU上及扩展模块上的数字量
|
电流需求
|
+5VDC
|
+24VDC
|
每点输入
|
-
|
4mA/每输入
|
表3. 数字扩展模块所消耗的电流
数字扩展模块型号
|
电流需求
|
+5VDC
|
+24VDC
|
EM 221 DI 8 x 24VDC
|
30 mA
|
4 mA/输入
|
EM 221 DI 8 x
120/230VAC
|
30 mA
|
-
|
EM 221 DI 16 x 24VDC
|
70 mA
|
4 mA/输入
|
EM 222 DO4 x 24VDC-5A
|
50 mA
|
-
|
EM 222 DO 4 x
Relays-10A
|
40 mA
|
20mA/输出
|
EM 222 DO8 x 24VDC
|
30 mA
|
-
|
EM 222 DO 8 x Relays
|
40 mA
|
9mA/输出
|
EM 222 DO 8 x
120/230VAC
|
110 mA
|
-
|
EM 223 24VDC 4 In/4 Out
|
40 mA
|
4 mA/输入
|
EM 223 24VDC 4 In/4
Relays
|
40 mA
|
4 mA/输入
9mA/输出
|
EM 223 24VDC 8 In/8 Out
|
80 mA
|
4 mA/输入
|
EM 223 24VDC 8 In/8
Relays
|
80 mA
|
4 mA/输入
9 mA/输出
|
EM 223 24VDC 16 In/16
Out
|
160 mA
|
4 mA/输入
|
EM 223 24VDC 16 In/16
Relays
|
150 mA
|
4 mA/输入
9mA/输出
|
EM 223 24VDC 32 In/32
Out
|
240 mA
|
4 mA/输入
|
EM 223 24VDC 32 In/32
Relays
|
205 mA
|
4 mA/输入
9mA/输出
|
表4. 模拟扩展模块所消耗的电流
模拟扩展模块订货号
|
电流需求
|
+5VDC
|
+24VDC
|
EM 231 4 Inputs
|
20 mA
|
60 mA
|
EM 231 8 Inputs
|
20 mA
|
60 mA
|
EM 232 2 Outputs
|
20 mA
|
70 mA
|
EM 232 4 Outputs
|
20 mA
|
60 mA
|
EM 235 4 Inputs / 1
Output
|
30 mA
|
60 mA
|
表5. TC(热电偶)和RTD(热电阻)模块所消耗的电流
热电偶和热电阻模块型号
|
电流需求
|
+5VDC
|
+24VDC
|
EM 231 TC, 4 Inputs
|
87 mA
|
60 mA
|
EM 231 TC, 8 Inputs
|
87mA
|
60mA
|
EM231 RTD, 2 Inputs
|
87 mA
|
60 mA
|
EM231 RTD, 4 Inputs
|
87 mA
|
60 mA
|
表6. 智能模块所消耗的电流
智能模块订货号
|
电流需求
|
+5VDC
|
+24VDC
|
EM277
|
150 mA
|
-
|
30 mA;通信端口激活时
|
60 mA;通信端口加90mA/5V负载时
|
180
mA;通信端口加120mA/24V负载时
|
EM241
|
80 mA
|
70 mA
|
EM253
|
190mA
|
不一定,详见技术数据
|
CP243-1
|
55 mA
|
60 mA
|
CP243-1 IT
|
55 mA
|
60 mA
|
CP243-2
|
220 mA
|
100 mA
|
注意:
EM277模块本身不需要24VDC电源,这个电源是专供通信端口用的。24VDC电源需求取决于通信端口上的负载大小。
CPU上的通信口,可以连接PC/PPI电缆和TD 200并为它们供电,此电源消耗已经不必再纳入计算。
(六) 问题
CPU224和CPU226具有内置实时时钟,CPU221和CPU222需要外接时钟电池卡才能使用实时时钟。全新的CPU需要设置,时钟才能开始正常走动。
(七) 问题
您应当确保带符号的数字用作不带符号的指令时不得超出正负数界限。若无法确保不带符号的数字用作带符号的指令时不超出正负数界限,可能致使程序或控制器操作出现无法预测的结果。无法预测的控制器操作可能导致人员死亡或严重伤害及/或财产严重损坏。请务必核实不带符号的数字用作带符号的指令时不得超出正负数界限。
欲间接存取字节,将指针用一递增或递减。欲间接存取字,将指针用二递增或递减。欲间接存取双字,将指针用四递增或递减。如果您从使终止位置超出V内存上限的起始位置递增双字,程序执行时会收到一则运行时间错误信息。欲存取定时器或计数器当前值(此为字数值),将指针用二递增或递减。
(八) 问题
对于 TD400C,行长度取决于所选的字体。 如果选择了小字体,则每行 24 个 ASCII 字符或 12
个中文字符。如果选择了大字体,则每行 16 个 ASCII 字符或 8 个中文字符。
(九) 问题
Modbus RTU 主站功能编程
1. 调用 Modbus RTU
主站初始化和控制子程序
2. 调用 Modbus RTU
主站读写子程序MBUS_MSG,发送一个Modbus 请求
3. 在 CPU 的 V 数据区中为库指令分配存储区(Library
Memory)
4. 连接S7-200
CPU上的端口0(或端口1,对于端口1库)和Modbus从站设备之间的通讯电
缆。
(十) 问题
一个正规的RS-485网络使用终端电阻和偏置电阻。在网络连接线非常短、临时或实验室测试时也可以不使用终端和偏置电阻。
终端电阻:在线型网络两端(相距最远的两个通信端口上),并联在一对通信线上的电阻。根据传输线理论,终端电阻可以吸收网络上的反射波,有效地增强信号强度。两个终端电阻并联后的值应当基本等于传输线在通信频率上的特性阻抗
偏置电阻:偏置电阻用于在电气情况复杂时确保A、B信号的相对关系,保证“0”、“1”信号的可靠性
西门子的PROFIBUS网络连接器已经内置了终端和偏置电阻,通过一个开关方便地接通或断开。终端和偏置电阻的值完全符合西门子通信端口和PROFIBUS电缆的要求。
合上网络中网络插头的终端电阻开关,可以非常方便地切断插头后面的部分网络的信号传输。
与其他设备通信时(采用PROFIBUS电缆),对方的通信端口可能不是D-SUB9针型的,或者引脚定义完全不同。如西门子的MM4x0变频器,RS-485通信口采用端子接线形式,这种情况下需要另外连接终端电阻,西门子可以提供一个比较规整的外接电阻。对于其他设备,可以参照《S7-200系统手册》上的技术数据制作。
西门子网络插头中的终端电阻、偏置电阻的大小与西门子PROFIBUS电缆的特性阻抗相匹配,强烈建议用户配套使用西门子的PROFIBUS电缆和网络插头。可以避免许多麻烦。
记住联网的格言:你糊弄它,它就糊弄你!
(十一)
问题
STEP7--Micro/WIN指令库包含有专门为Modbus通讯设计的预组态的子程序和中断服务程序,使得与Modbus主站和从站设备进行通讯简单易行。
Modbus从站指令可以将S7-200组态为Modbus RTU从站设备,与Modbus主站设备进行通讯。
Modbus主站指令可以将S7-200组态为Modbus
RTU主站设备,与一个或多个Modbus从站设备进行通讯。
Modbus指令安装在STEP
7--Micro/WIN指令树的库文件夹中。这些指令使S7-200可以作为Modbus设备。当将Modbus指令放置在用户程序中时,会有一个或多个相关的子程序自动添加到您的项目中。
存在两个版本的Modbus主站协议库。一个版本使用CPU的端口0,另一个版本则使用CPU的端口1。
端口1库在POU名称后面附加了一个_P1(例如,MBUS_CTRL_P1),用于表示POU使用的是
CPU上的端口1。在所有其他方面,这两个Modbus主站库都完全相同。
Modbus从站库仅支持端口0通讯。
|