PLC的程序规模都不大,一般才几千字节,能上万字节就算很大的程序了。PLC有许多输入输出接口,以及各种类型的变量,这些都需要专门设置地址,以便在程序中使用。 我们看下图,此图是用PLC国际通用标准IEC61131-3模块化编程语言写成的: 图1 某地铁配电控制系统PLC的输入接口参数定义程序和延迟判误程序 在图1中,大家在左侧看到了许多输入参量,它们的末尾都有_s的标识,这些就是开关量输入参数,它们不但有地址,还有名称。这是必须的,否则程序无法辨识和使用它们。 由图1的程序看到,这种编程方法比所谓的C语言方便得多。事实上,每一个功能块就相当于一段C语言。例如TON模块,它是延迟模块,如果用C语言,怎么也要若干语句行,但这里仅仅只是一个程序模块而已。何者更方便一看便知。 自动控制网www.eadianqi.com版权所有 再看下图: 图2 PLC的16位字解析为单个开关量的程序段 图2中,程序开头的AND(与逻辑模块)实施程序转移。当条件满足时,AND启动子程序入口。在图2中,我们看到了UNPACK16模块,它的任务是把一个16位的字解析为16个开关量,供下一步程序使用。 我们很容易想到,这个UNPACK16模块若用C语言来写,又会有何种形式?何者更方便? 我们看下图: 图3 数据交换的RS485接口定义和MODBUS通信管理 图3是PLC对系统中各种数据交换的定义、数据采集和管理。图中的一个个模块就是处理MODBUS通信协议数据的,同时还实现数据采集轮巡操作。 这些模块用C语言该如何写?是不是会麻烦很多?我们看到,PLC程序的便捷性是C语言无法比拟的。 本文来自www.eadianqi.com |