文档库 最新最全的文档下载
当前位置:文档库 › S7-300400 PLC编程习惯

S7-300400 PLC编程习惯

S7-300400 PLC编程习惯
S7-300400 PLC编程习惯

S7-300/400 PLC编程习惯

所属类别:SIEMENS

更新日期:08-12-30

发表来源:PLANT

详情内容:关于统一PLC编程标准几点说明

为了PLC程序可读性强,短期内可以读懂并且能够修改,在PLC工作组内部需要统一我们的编程标准,以便适应将来工程人员调动后,原来的程序能够被后来的人在短期内读懂,现统一标准如下:

一、程序结构

1、程序结构统一

OB1:主程序;

OB100:初始化程序(无需主程序调用);

OB35:100ms(可修改)中断(无需主程序调用),可以调用PID模块;

OB80、OB82、OB85、OB86、OB87、OB121、OB122:故障诊断模块(无需主程序调用、无需编程);

FC1:系统模式;

FC2:输入处理;

FC3:输出处理;

FC4:运行处理;

FC5:停止处理;

FC6:手自动切换;

FC7:

。。。

。。。

FC100:之后用来建立一些可以循环调用的子程序;

FC105:系统自带,模拟量输入子程序(可以循环调用);

FC106:系统自带,模拟量输出子程序(可以循环调用);

modbus通讯(CP341):FB7:P_RCV_RK,FB8:P_SND_RK;

通讯CP340:FB2:P_RCV,FB3:P_SND;

一般PID:用FB41;

温、湿度PID:用FB58;

如果程序块与系统块重复,请避让。

2、数据块

DB1:AI数据,类型:REAL,与上位机接口;

DB2:AO数据,类型:REAL,与上位机接口;

DB3:DI数据,类型:BOOL,与上位机接口;

DB4:DO数据,类型:BOOL,与上位机接口;

DB5:设备运行时间及流量累计,类型:REAL,与上位机接口;

DB6:报警消息,类型:BOOL,与上位机接口;

DB7:类型:REAL,中间寄存器;

DB8:类型:INT,中间寄存器;

DB9:类型:WORD,中间寄存器;

DB10:类型:BOOL,中间寄存器;

DB11:之后用作与设备通讯用,例如:MODBUS通讯等;

DB100:之后用作调用FB块时的背景数据块;

M区:也作为中间变量。

3、DP从站故障诊断

DP从站必须做故障诊断,故障报警,用FB125即可。

二、控制模式

1、系统设置远程/本地/手动按钮

1.1、远程:只能通过上位机对系统进行自动启/停控制,单台设备就地控制优先,在程控时,可以通过上位机对设备进行软手操/自动切换,软手操启/停;

1.2、本地:只能通过触摸屏对系统进行自动启/停控制,单台设备就地控制优先,在程控时,可以通过触摸屏对设备进行软手操/自动切换,软手操启/停;

1.3、手动:手动控制时,上位机/触摸屏失效,只能通过手动控制设备的启/停。

2、单台设备控制

单台设备必须有软手操/自动切换以及软手操时可以启/停功能,由自动切换到软手操时,设备不能停机;由软手操切换到自动时,设备启/停取决于自动程序。

3、单台设备(泵、风机及其它大型设备)运行满24小时必须进行轮换,且必须有运行时间累计,如果由上位机设定启/停顺序除外,操作人员自行设定;

三、编程技巧

1、程序块尽量细化,方便阅读,将同一类型的设备控制放在一个程序块中;

2、如遇特殊情况下采用语言编程,多数情况下请使用梯形图编程,方便别人阅读;

3、对于经常调用的子程序,可以做成子模块,频繁调用,例如:求几个数平均值或求几个数的最大值;

4、程序要有注释,变量及中间变量必须有描述,方便别人阅读或以后查阅;

5、定期做程序备份,最好以工程名称+系统名称+当天日期;

6、程序加密,防止别人窃取。

西门子S7-200常见问题

?模拟量模板EM235的输入电阻是多少?

输入电阻的大小和您所选择的输入类型有关,如果您选择电压输入,这样输入阻抗不小10兆欧;如果选择电流输入则输入抗为250欧姆

?在应用EM231RTD模块的时候其测量值代表什么含义?

当您应用EM231RTD模块的时候,将其测量值除以10.0就是实际的温度值。模块本身能够测量的范围是-3276.8到3276.7摄氏度,但实际测量值的范围取决于传感器的测量范围和实际温度。

?在什么环境下可以编辑中文TD200?

建议采用STEP 7-Micro/WIN 32 V3.1 SP1中文版

?EM235的量程问题:

通过调整电位计及DIP开关可以改变EM235的量程为:

0-10V;0-5V

0-1V;0-500mV

0-100mV; 0-50mV

±10V; ±5V; ±2.5V

±1V ±500mV; ±250Mv

±100mV; ±50mV; ±250mV

0- 20mA

?在什么环境下可以编辑中文TD200?

建议采用STEP 7-Micro/WIN 32 V3.1 SPI中文版

?什么是AC/DC/RLY?

这是S7-200CPU的型号

AC/DC/RLY对应:交流220供电,24V DC输入,继电器输出

另外的一类型号是:DC/DC/DC

DC/DC/DC对应:直流24V供电,24V DC输入,晶体管输出

?开关量输入需要供电吗?

开关量的输入端需要供电,S7-200本身有相应的24V电源提供具体接线请在"技术规范"内查找

?为什么有的编程软件下没有Ln指令?

有两个原因:一是编程软件的版本问题,建议采用新版软件,二是只有CPU224、226

支持此指令,CPU221,CPU222没有此指令。

?如果编程口的地址、波特率、等参数忘记了怎么办?

西门子提供一个wipeout.exe应用程序,可以恢复PLC为原厂设置,并且删除用户程序,数据块,和所有的配置信息,PLC将被设置为地址2,波特率9600。WIPEOUT在DOS 环境下运行,不过您一定按照提示完成。如果一次不成功请重复测试,它的基本原理是这样的,PLC在上电这初期(非常短)是以出厂设置的状态工作的,WIPEOUT只有这段时间才有控制权改变PLC的设置的。所以您加电和键盘操作一定要配合好。Wipeout.exe文件拷贝在编程软件的光盘上,如果您没有欢迎下载

?能否在CPU224中使用存储在存储卡上的CPU222的程序

答:可以,您可以从EEPROM存储卡向相同的、更大的、或更新的CPU22X 中输入程序。

?为什么在使用模拟量输入模块的时候,有时AD码值会有很大的"跳动"?

在应用模拟量模块的时候,您会有两个"电源地",一个是CPU的供电地,另一个是传感器信号地,两个电源的地线是没有连接的。这样就有可能产生高的共模电压,对模拟量输入值产生影响。

建议:建议将两个电源地线连接在一起,

注意:共地的时候一定保证两个电源只有一根共地线,以避免不必要的有害电流产生

?在使用MODEM的时候,无法连接

MODEM和CPU之间的通讯故障可能由下列原因产生

1.CPU和PC/PPI电缆是为半双工设计的,而计算机的232口是全双工的2.CPU既不产生DTS信号也不产生RTR信号,但是计算机可以产生解决办法:

1.预先在MODEM上永久地断开本地回波(例如用AT指令AT EO)2.在合适的地方断开DTS和RTR信号关于"MODEM"和S7-200的有关问题我们将专题讨论

?当PLC的输入点采用PLC本身的24V电源供电时应该注意什么?

如果您的I/O通过PLC本身的24V电源供电时,在PLC刚刚加电的时候不会立即有电,CPU要领先于输入先得电。这一点对于上电初始化的时候可能有影响,解决的办法是如果初始化程序与开关量输入有关,请延时几毫秒再初始化。

?在使用TD200的时候信息为什么过一段时间会自动切换到其它的信息?

在组态TD200的时候,为信息赋予的优先级是降序排列的,第一条信息具有最高的优先权,在使能多条信息的时候,通过上下箭头键可以在多条信息间切换,黑色闪烁光标显示的是当前的信息,如果30秒内不做任何操作,系统会自动切换到优先级最高的那条信息。这是一个很好的功能,不是什么错误。如果您想固定显示某条信息,您只要在同一时刻只"使能"一条信息即可.

?关于RCV及XMT指令使用时的常见问题:

1.RCV及XMT指令不能同时有效,如果同时发生则会产生错误,通讯口不能进行新的通讯,需要重新启动才可以清除错误。

2.在用PC/PPI电缆时,发送和接收之间有一定的时间间隔,这是由电缆本身的切换时间决定的。

3.关于通讯超时的问题,在SM187.2设为1的时候,并不是超过SMW192的时间值即终止接收,而是只有接收到首字符后未能在规定时间内完成接收才可以自动终止接收,如果收不到首字节,RCV将一直保持有效。? 一点解决办法:

如果要停止RCV,需要复位相应的SM187.7,但是需要执行一次RCV才能有效,因为只有新的RCV指令CPU才去读SMB

例如:

LD M0.2

RSM87.7,1

RCV VB99,0

XMT VB199,0

在发送之前首先断开接收

?2001年后订的TP170A,程序下载不下去?

这是因为2001年后购的新版TP170A加进了新的功能和Firmware,原来的protool/pro V5.2+SP1不能支持这种新功能,所以应升级protool/proV5.2+SP1到protool/proV5.2+SP2即好。

?旧的TP170A程序无法下载。怎么办?

对于MP270、OP170B、TP170A、TP170B等打新出的基于WindowsCE 操作系统的操作员面板,因为Protool/pro软件版本不断升级,所以原来旧的TP/OP的Firmware不能与新protool/pro相匹配。所以软件程序无法下载下去,为此应按下列步骤对旧TP/OP的Firmware进行升级:

1.在新版Protool/pro光盘中,在images\TP170A\V5-2-SP2下找到Ptupdate.exe文件,运行此文件,则会弹出一个名为“net-ptupdate”的窗

口。在菜单“file”?“setting”中设置好通迅接口,如coml。

2.在菜单“file”?“open”窗口中选中光盘中所带的

“TP170A_V5_2_SP2_23.img”文件,并打开此文件。

3.在菜单“file”?“download”中将此配置下载到TP170A中。

4.重新启动TP170A,然后下装程序

主程序:

LD SM0.1

CALL SBR_0

LD SM0.0

CALL SBR_1

子程序SBR_0

//定于采样次数(次数×采样时间=平均值输出时间)

LD SM0.0

MOVW +10, VW0

//采样值存储器清零

LD SM0.0

FILL +0, VW2, 11

//这些都是对应的地址清零

LD SM0.0

MOVD +0, VD200

MOVD +0, VD204

MOVD +0, VD208

MOVD +0, VD212

MOVD +0, VD216

MOVD +0, VD308

MOVD +0, VD224

子程序SBR_1

//调出模拟信号

LD SM0.0

MOVW AIW0, VW200

//定义采样时间

LD SM0.0

AN T37

TON T37, 1

//将模拟量值存入表格

LD T37

ATT VW200, VW0

//将值转化为实数

LD SM0.0

ITD VW200, VD204

DTR VD204, VD208

MOVW VW2, VW300

//求采样和

LD T37

+R VD208, VD212

//采样次数到,求平均值,采样和减去采样第一次值LDW> VW300, +9

ITD VW300, VD216

DTR VD216, VD220

MOVR VD212, VD224

/R VD220, VD224

FIFO VW0, VW306

ITD VW306, VD308

DTR VD308, VD312

-R VD312, VD212

//转换为整数输出

LD SM0.0

ROUND VD224, VD228

DTI VD228, VW232

相关文档