柳絮飞花
无产工程师
级别: 论坛先锋
精华主题: 0
发帖数量: 500 个
工控威望: 1212 点
下载积分: 7865 分
在线时间: 102(小时)
注册时间: 2017-06-27
最后登录: 2024-12-17
查看柳絮飞花的 主题 / 回贴
楼主  发表于: 2020-08-17 17:23
为了使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:系统自带,模拟量输出子程序(可以循环调用);

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小时必须进行轮换,且必须有运行时间累计,如果由上位机设定启、停顺序除外,操作人员自行设定;

三、plc编程技巧

1、程序块尽可能细化到易于读懂,将同类型的设备控制放在程序块中;

2、如果在特殊情况下使用语言编程,请在大多数情况下使用梯形图编程以方便他人阅读;

3、对于经常调用的子程序,可以创建子模块并经常调用它们,例如:找到几个数字的平均值或找到几个数字的最大值;

4、程序应有注释,变量和中间变量必须有描述,以方便阅读或以后看懂;

5、定期程序备份,最好按项目名称和日期命名;

6、程序加密。
本帖最近评分记录:
  • 下载积分:+2(阳军财) 感谢分享!
  • 工控普通人,学习在路上
    yyande
    级别: 探索解密
    精华主题: 0
    发帖数量: 60 个
    工控威望: 132 点
    下载积分: 2687 分
    在线时间: 26(小时)
    注册时间: 2020-05-23
    最后登录: 2024-12-09
    查看yyande的 主题 / 回贴
    1楼  发表于: 2020-08-17 20:51
    尽可能的采用高级语言编写,刷下一大批维护人员,然后你的工资就上升了!           
    longergkrjy
    级别: 略有小成
    精华主题: 0
    发帖数量: 155 个
    工控威望: 257 点
    下载积分: 37273 分
    在线时间: 433(小时)
    注册时间: 2015-08-11
    最后登录: 2024-12-26
    查看longergkrjy的 主题 / 回贴
    2楼  发表于: 2020-08-17 23:13
    厉害了,大神!分配得非常好啊!