vipdlq
五年一道坎
级别: 探索解密
精华主题: 0
发帖数量: 11 个
工控威望: 114 点
下载积分: 618 分
在线时间: 4(小时)
注册时间: 2011-03-25
最后登录: 2016-08-24
查看vipdlq的 主题 / 回贴
楼主  发表于: 2011-03-25 11:46
关于统一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、  程序加密,防止别人窃取。
不管你二不二,二就在那里,不三不四
cvlsam
富士低压,POD(觸摸屏),PLC专卖
级别: VIP会员

精华主题: 3 篇
发帖数量: 6770 个
工控威望: 38371 点
下载积分: 3142 分
在线时间: 9509(小时)
注册时间: 2006-09-13
最后登录: 2024-11-23
查看cvlsam的 主题 / 回贴
1楼  发表于: 2011-03-25 12:42
就数据块那块来看,楼主需要多了解市场啊,DB10,很多触摸屏厂商将其作为特殊区域对待……