好文档 - 专业文书写作范文服务资料分享网站

ABB PLC 新手入门------经典程序示例

天下 分享 时间: 加入收藏 我要投稿 点赞

ABB PLC 新手入门------经典程序示例

1. 模拟量输入转换

对于4-20mA转换为对应量程,ABB的模拟量输入模块DI810是可以直接设置的,无需做转换算法,此处我们通过程序写算法来实现。

首先新建一个库,添加名称:

然后在新建的库里面添加功能块:

打开功能块编写程序(ST格式): InputInt:=Input;

if InputInt

InputInt>InMaxRange then InputInt:= InMaxRange; end_if;

InRange:=InMaxRange-InMinRange;

OutRange:=OutMaxRange-OutMinRange;

Output:=(InputInt-InMinRange)/InRange*OutRange+OutMinRange;

8

定义的变量如下:

代码:

接下来我们在程序中调用自己写的功能块: 2.点击此处找到自己写的库函数中的功能块: 1.打开程序,右击选择插入功能块: 3.插入后如下:

8

最后,下载到仿真器测试,效果如下:

0~16384对应0-100,因此输入8192,则输出为50,测试正确。

顺便再介绍下ABB PLC中的变量定义及其属性: 属性 类型 名称 变量名称和西门子不一样的是不是以M或者开头,可以任意单词定义;类型是一样的,都有整形,浮点数,字符串等;属性如下图:

各种属性 各属性区别如下:

? no attribute---重启后数据不保持,替换为初始值;若未设置初始值,

会获取这个数据类型的默认值。

? retain----------热重启数据可以保持;冷重启不保持,替换为初始值。 ? coldretain ----热重启和冷重启数据都能保持,此属性在结构化数据类

型中重写了保持属性。

? constant ------常量,在编译下载之后无法改变此值,此属性在结构化

数据类型中重写了保持属性。

? hidden----------在OPC Server中不可见。

因此,在上图中的两个变量CompAirOk和SimLocal,它们的区别在于CompAirOk在HMI上是可以使用的,而SimLocal无法再HMI上使用(HMI通过OPC连接)

8

2. 浮点数累加精度问题

在处理浮点数累加的过程中,当值很大的时候,比如12345678.9,这时候我们在每1S加0.01,会出现累加的值不准确的情况。

此时我们需要对累加值拆分处理,下图是处理累计里程数,

距离累加(mm) 编码器计算走过的距离 里程数转换成m 当累加值超过10m,清零再次累当累加值超过10m,把当前累加值保存 加,也就说保证浮点累加不超过10 到中间变量BURLenAcc,并把累加值 (mm)清零,重新开始累加距离(mm) 最终显示Appsw.BURRollLen就是当前值 BurLenDisplay(m)加上保存的中间值BURLenAcc

8

3. 顺控

按启动按钮(startbutton)顺控开始执行,一段时间(warmdelay)后当满足一定条件(LevelCompare)执行,共执行3步然后结束顺控,中间可以按停止按钮(Stopbutton)来结束顺控。

打开程序,插入SFC:

编写顺控图,共5步骤:

S1-S5共5步骤;Tr1-Tr5为每一步跳至下一步骤的条件: Tr1的条件,后面亦如是

在顺控中,会默认有一些变量我们可以使用,如下: SequenceName.Reset::bool类型,顺控回到初始步

SequenceName.Hold::bool类型,顺控被锁定,但Reset不受影响

SequenceName.DisableActions::bool类型,当前步的所有动作不会执行 SequenceName.X::bool类型,当前步激活的时候为1

8

ABB PLC 新手入门------经典程序示例

ABBPLC新手入门------经典程序示例1.模拟量输入转换对于4-20mA转换为对应量程,ABB的模拟量输入模块DI810是可以直接设置的,无需做转换算法,此处我们通过程序写算法来实现。首先新建一个库,添加名称:然后在新建的库里面添加功能块:
推荐度:
点击下载文档文档为doc格式
5y03177pss2b61z97l7x8uhsm07tmu016yh
领取福利

微信扫码领取福利

微信扫码分享