Responsive image

首页 > 新闻动态 > 技术交流 > 数组变量在somachine编程中的应用

数组变量在somachine编程中的应用

发布时间:2022-07-24    浏览量:532

 1 引言——关于codesys编程软件

 


codesys是德国3s-software公司PLC开发软件平台,codesys 为beckhoff、ABB、施耐德等主流自动化装备制造商提供严格符合PLCOPEN标准化组织的IEC61131-3标准编程。

Somachine(施耐德)软件基于Codesys平台,支持M218,M238、M258、M241、M262等系列产品,支持6种IEC编程语言,分别为:

Somachine支持IEC61131-3所描述的所有语言:

文本化的语言:

● 指令表(IL)

● 结构化文本(ST)

图形化的语言:

● 梯形图(LD)

● 功能模块图(FBD)

● 顺序功能流程图(SFC)

● 连续功能图(CFC)

支持一维, 二维, 三维数组,属于基本数据类型, 可以直接在 POU 或 GVL 中定义。

数组定义的语法规则:

<数组名>: ARRAY[<I1>. . <U1>, <I1>. . <U2>, <I3>. . <U3>]OF<基本数据类型>

其中, I1, I2, I3 为下限, U1, U2, U3 为上限;

例如定义二维3×3整数数组: ARRAY1 : ARRAY[0. . 2, 0. . 2] OF INT;

数组初始化:

示例: ARRAY1 :={1, 2, 3, 1, 2, 3, 1, 2, 3} ;


2 与多组变频器通讯及控制变轨式步进驱动器中的具体应用

 

2.1 控制功能的介绍

 

        某机械设备电气控制原理图如图1所示:                                          

 

图1 控制原理图

包含1个步进驱动器以及5个变频器,步进电机采用PTO脉冲输出形式,变频器采用Modbus通讯方式。

 

2.2 ABB ACS550系列变频器通讯简介


Modbus协议是Modicon公司开发的应用于电子控制器的一种通用语言,。在modbus通讯数据信息中,寄存器4****地址为****-1,例如40002地址对应0001。M218/M241 控制器内可配置2个 RS485 串口。

 

表1 设置参数

参数名

参数序号

参数值

参数含义

通讯初始化       

9802

1

标准modbus

站号

5302

变频器站号

1,2,3,4,5。

波特率

5303

9.6K

 

奇偶校验

5304

2

8位,偶校验,停止位1位。

给定值信号源选择现场总线

1103

8

 

 

变量声明设置如下:

地址: STRING(INT#4);//定义“地址”字符型,数量为4。 (somachine软件支持中文字符编程(工程/工程设置/编译选项/allow unicode characters for identifiers)

 新地址: ARRAY [1..5] OF STRING(INT#4):= ['2.1','2.2','2.3','2.4','2.5'];//定义“新地址”站号数组1~5类型为字符

站号:word;//定义“站号”类型为字,与变频器通讯ST语句程序如下:  

B1(Enable:=true,   //B1为500毫秒周期脉冲, 输出start触发Addm_1通讯功能块

Timelow:=t#500ms,

Timehigh:=t#500ms,

Out:=start)

Addm_1(Execute:=start,

Addr:=‘地址’,

AddrTable:=addm1000, //addm1000为管理通讯地址表

Done:=>,

Error:=>

CommError:=>

);

W1_var(Execute:=Addm_1_Done, //通讯功能块完成Done标志触发W1_Var读功能块

Addr:=add1000,

Timeout:=5,

ObjType:=objecttype.mw, //类型为%MW 整型

FirstObj:=1; //寄存器40002为给定值fer1,故起始值firstObj为1。

Quantity:=1;// 寄存器数量为1

Buffer:=ADR(fer1)// 缓存地址为fer1

Done:=>,

Busy;=>,

Aborted:=>,

Error:=>,

CommError:=>,

OperError:=>,

结束:=NOT BUSY;

);

//读完成或错误标志“结束”置位后,将站号加1,大于6后则置零,实现循环。如图2所示。

 

 

                             图2 站号循环程序截图

 

给点值fer1最大值(参数1105)对应为数值20000,触摸屏上对应地址应乘以整数40。触摸屏上变频器设置频率(最大值50.0)。变频器接线及参数设置完成后,可以观察参数5309(EFB状态)查看是否通讯成功,参数5319为设置的频率。

 

2.3 步进驱动的实现


SH-2404是数字式步进电机驱动器,采用最新32位DSP 技术, 能够满足大多数场合应用需要。 由于采用内置微细分技术, 即使在低细分的条件下, 也能够达到高细分的效果, 低中高速运行都很平稳, 噪音超小。适用于 39、 42、 57 两相步进电机。信号接口 PUL+和 PUL-为控制脉冲信号正端和负端; DIR+和 DIR-为方向信号正端和负端; ENA+和 ENA-为使能信号的正端和负端。电机接口 A+和 A-接步进电机 A 相绕组的正负端; B+和 B-接步进电机 B 相绕组的正负端。 当 A、 B 两相绕组调换时,可使电机方向反向。

 

电源接口 采用直流电源供电, 工作电压范围建议为20-50VDC, 电源功率大于100W。设置参数如下:

   

额定电流RMS 1.36A   SW1/SW2/SW3     设为ON/OFF/ON

空载半流:           SW4=OFF

细分数8             SW5/SW6/SW7/SW8 1600 设为OFF/OFF/ON/ON

电气接线如图3所示。

 

图3 步进电机驱动器接线图

 

2.4 步进动功能实现说明


(1)运行前步进电机先向原点方向运行,PLC检测到原点接近开关上升沿停止,作为运行曲线的原点。输出模式选为脉冲/方向方式,寻原点类型选为短凸轮方式。如图4所示。

 

图4 步进运动功能实现

 

(2)设计运行曲线相对定位轨迹参见表2所示。

 

表2 相对定位运行轨迹

1

-7000

2

4000

3

-8000

4

5000

5

-9000

6

5000

7

-9000

8

5000

9

-9000

10

10000

11

-8000

12

12000

13

-9000

14

13000

15

-17000

16

20000

17

-18000

18

12000

19

-9000

20

13000

21

-8000

22

11000

23

-15000

24

16000

 

 

   

 

以上正负号表示与上次运动方向相同(正),相反(负)。

 

为此建立位移数组变量:

 

位移: ARRAY [1..24] OF DINT:= [-7000,4000,-8000,5000,-9000,5000,-9000,5000,-9000,10000,-8000,12000,-9000,13000,-17000,20000,-18000,12000,-9000,13000,-8000,11000,-15000,16000];//当每次位移结束时,将变量地址加1。程序截图如图5所示。

 

 

 图5 步进运行程序截图

 

3 结束语


利用数组编写的程序简洁、清晰,可读性强,减轻了编程难度,减少了设计量,给设计人员提供了全新的思路。

 

参考文献


[1]叶胜前,王镜程,沈勇. 基于S7-1200实现数组某一列上下循环移动的方法研究[J].电工技术,2018第10期

[2]曹旗,乐立文.数组变量在 UniPro 编程中的应用[J].科技创新与应用,2016第22期

[3]时文飞.数组式编程方法在PLC编程中的应用[J].电气传动,2014年第1期

[4]周大志,樊石.数组式编程方法在PLC编程中的应用[J].自动化技术与应用,2009第6期

 

作者简介


潘旭峰(1976-) 男 高级技师 助理工程师 研究方向为工业自动化装备管理工程

上一个:PROFINET和PROFIBUS区别 返回 下一个:CODESYS在工厂自动化中的应用:PCB板焊接机

联系我们

联系人:尹老师
电话:159-0684-5558
QQ:41780253
江东校区地址:宁波江东百丈东路1130号海运港大厦8楼
海曙校区:海曙区学院路788号upark商业公园B4幢一楼,石浦大酒店旁边匠心教育