您现在所在的是:

西门子SIEMENS

回帖:67个,阅读:17222 [上一页] [1] [2] [3] [4] [5] [6] [7] [下一页]
1159
371575950
文章数:59
年度积分:50
历史总积分:1159
注册时间:2014/11/30
发站内信
发表于:2016/2/15 9:21:05
#60楼
楼主新年好
此帖发自手机工控论坛
8553
gzlsj
文章数:2657
年度积分:50
历史总积分:8553
注册时间:2008/11/10
发站内信
发表于:2016/3/14 19:40:20
#61楼
很好
460
jingbaoqing
文章数:1
年度积分:50
历史总积分:460
注册时间:2017/2/13
发站内信
发表于:2017/2/13 1:34:17
#62楼
以下是引用lhw9821179102009/3/12 15:26:49的发言:
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、  程序加密,防止别人窃取。
好好改熬好
此帖发自手机工控论坛
8553
gzlsj
文章数:2657
年度积分:50
历史总积分:8553
注册时间:2008/11/10
发站内信
发表于:2017/2/18 16:19:28
#63楼
不错,思路清晰。
1041
hhaha
文章数:20
年度积分:50
历史总积分:1041
注册时间:2003/11/23
发站内信
发表于:2018/3/18 10:58:21
#64楼
好经验多点给我们分享,谢谢你
824
lucky198894
文章数:5
年度积分:50
历史总积分:824
注册时间:2017/1/13
发站内信
发表于:2018/3/18 16:46:08
#65楼
mark
此帖发自论坛手机版
836
285597410
文章数:35
年度积分:50
历史总积分:836
注册时间:2011/6/7
发站内信
发表于:2018/3/23 16:27:06
#66楼
提供一种思路,谢谢分享...
1900
xiatianyun
文章数:277
年度积分:50
历史总积分:1900
注册时间:2002/6/5
发站内信
发表于:2018/4/4 10:13:04
#67楼
我也来说说我的编程套路:
一般做程序时可能硬件还没有设计出来,IO点的功能未定,或者说有可能后期会有变动,所以我一般会设计一个DB作为IO映像,后续的程序如果需要使用硬件IO点就使用该DB的数据,不采用IO硬点。这样及时后续IO变动也只需简单修改映像DB的程序而无需整个程序进行修改。
程序大量使用到定时器,并且定时时间一般精度要求不高,如果使用PLC提供的定时器元件,一方面数量有限,一方面需要自己管理定时器编号,更何况编号还和时基相关,不太好管理。所以我一来就设置PLC的MW0为硬件定时脉冲存储单元,再转换为上升沿信号,后续程序中需要使用定时器就用该信号计数实现。这用只需管理ADD加法器了。或者把定时器包装为一个FB,内部实现了时基、开始计数信号、复位信号、定时时间输出等等功能,需要就用该FB生成。一般我采用...叫什么忘了,总之不是公共DB,不需要我管理。对了,叫多重背景DB,只需要在程序内的静态数据区管理。
。。。。。

关于我们 | 联系我们 | 广告服务 | 本站动态 | 友情链接 | 法律声明 | 非法和不良信息举报

工控网客服热线:0755-86369299
版权所有 工控网 Copyright©2025 Gkong.com, All Rights Reserved

93.6006