回复:请教个问题啊 ?

n次看你的背影

  • 帖子

    2321
  • 精华

    73
  • 被关注

    53

论坛等级:奇侠

注册时间:2008-03-11

普通 普通 如何晋级?

发布于 2011-06-24 13:37:13

19楼

楼上很多朋友讲的非常有道理。在下也想补充一些:编写较大程序时、先要弄清楚工艺过程,每台设备的运行特征。按照工艺过程,人为地根据工艺步骤,分成若干个工艺段。这时,根据上面分的工艺段,规划主程序结构,规划每台设备的IO点、并在EXCEL里面建立相应的符号后导入符号表中。每个工艺段可以做成一个FC,在FC里面调用驱动相关设备的FC、FB,然后再建立它们之间细部的逻辑连锁关系,一个工艺段内的设备可以规划一个专用的共享DB给这个工艺段内的设备使用,此DB块的规划最好也是有着较好结构,M区最好也要规划有序!这样一个工艺段编写好了,其它工艺段也可以按照这种结构推广。模拟量最好用统一的国际标准4-20mA信号,硬件组态时先将2线制、4线线制区分开来,按照顺序分配好地址。我一般将32个模拟量处理放在一个FC里面,用处理模拟量的FC(也可以自己编写一个功能较多的专门处理模拟量的FC)反复调用,然后规划一个有着一定结构的共享DB存储它们的数据。如果有更多的模拟量,那么就按照这种结构推广,你处理模拟量的FC和共享DB只要再分别拷贝,在这个FC里面改变相应的参数和地址、或者只要改变DB块号就可!PID的处理可以规划放在一起,可以放在OB35里面,建议OB35里面的程序尽量短小。PLC与PLC或者第三方设备通讯都放在一起,也可以做成一个FC,在这个FC里面再去调用PLC内部的SFC、SFB。在较大的程序中,使用结构化编程,程序结构清晰易懂、编程速度快、可阅读性强、系统可扩展性强、程序维护简单等优点!在下就做一个简单示范,希望能对楼主有些帮助!^_^(仅供参考)
//╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬OB1内的用户程序╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬
// ★★★PLC与PLC的通信程序★★★
CALL FC 301 //接受来自PLC2的数据 shared db DB301
CALL FC 302 //发送数据到PLC2 shared db DB302
CALL FC 303 //接受来自PLC3的数据 shared db DB303
CALL FC 304 //发送数据到PLC3 shared db DB304

//╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬
// ★★★各工艺段的控制程序★★★
CALL FC 311 //工艺段1的控制程序 shared db DB311
CALL FC 312 //工艺段2的控制程序 shared db DB312
CALL FC 313 //工艺段3的控制程序 shared db DB313
CALL FC 314 //工艺段4的控制程序 shared db DB314
CALL FC 315 //工艺段5的控制程序 shared db DB315
CALL FC 316 //工艺段6的控制程序 shared db DB316
CALL FC 317 //工艺段7的控制程序 shared db DB317
CALL FC 318 //工艺段8的控制程序 shared db DB318
CALL FC 319 //工艺段9的控制程序 shared db DB319

//╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬
// ★★★★各模拟量处理程序★★★
CALL FC 361 //模拟量地址从PIW512~PIW575(每个群组32个模拟量)shared db DB361
CALL FC 362 //模拟量地址从PIW576~PIW639(每个群组32个模拟量)shared db DB362
CALL FC 363 //模拟量地址从PIW640~PIW703(每个群组32个模拟量)shared db DB363
CALL FC 364 //模拟量地址从PIW704~PIW767(每个群组32个模拟量)shared db DB364

//╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬
// ★★★步进型电动执行器PID控制程序★★★
CALL FC 381 //每个群组控制16个回路STEP型电动执行机构 shared db DB381

// ★★★连续PID控制程序★★★
CALL FC 385 //每个群组控制16个回路连续量的PID控制器 shared db DB385

//╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬╬
// ★★★评估CPU执行PLC程序的时间以及PID程序初始化标志位复位★★★
L #OB1_PREV_CYCLE //Cycle time of previous OB1 scan (milliseconds)
T DB300.DBW 0
L #OB1_MIN_CYCLE //Minimum cycle time of OB1 (milliseconds)
T DB300.DBW 2
L #OB1_MAX_CYCLE //Maximum cycle time of OB1 (milliseconds)
T DB300.DBW 4

A M 17.0
R M 17.0 //OB1第一个循环结束复位初始化标志位,用作PID控制器初始化

佛对我说:“你的痛苦来自于你的欲望,没有欲望也就没有痛苦!”
评论
编辑推荐: 关闭

请填写推广理由:

本版热门话题

谈天说地

共有13246条技术帖

相关推荐

热门标签

相关帖子推荐

guzhang

恭喜,你发布的帖子

评为精华帖!

快扫描右侧二维码晒一晒吧!

再发帖或跟帖交流2条,就能晋升VIP啦!开启更多专属权限!

  • 分享

  • 只看
    楼主

top
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。