工控网首页
>

应用设计

>

雷赛DMC1380控制卡关于更改专用输入为通用输入的函数应用技巧

雷赛DMC1380控制卡关于更改专用输入为通用输入的函数应用技巧

2012/10/11 14:06:19
需要用到的函数定义如下:

 

 

软件使用说明书中关于对应位的定义如下图1

 


(图
1

 

 

下面以VB为例,举例说明如何使用:

1. 某客户项目用一张DMC1380卡,对X轴,其只是需要原点信号,该项目不希望用到扩展板的I/O,因为X 轴的限位开关Elx+ Elx- 输入已经有光耦隔离,因此其希望将Elx+ Elx-用作通用输入口,用作某气缸两端的磁环感应开关的输入口(以便检测气缸的工作位置),DMC1380的引脚定义对应关系如下图2

 


    其中:

Elx+ 对应通用输入IN4

Elx- 对应通用输入IN5

2. 从图1中我们将对应的位关系按2进制列表,如下表1

高位

 

 

 

 

 

 

 

 

 

 

 

 

低位

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

0

1

1

1

1

1

1

1

1

1

1

0

0

1

1

1

                                 (1)

    其中蓝色标记的位对应如下:

             ELx+ à à  IN4 à 函数d1000_in_bit4

Elx- à à  IN5 à 函数d1000_in_bit5

想要将这两位设为通用输入,需要将该两位对应的2进制值设为0同时必须保留其他的位的2进制值为1(或按自定义位的值来设定),如表一所示。

该值按2进制排列如下:

      高位                         低位

0111     1111     1110      0111

值为0的带下划线的两个位对应 ELx+ ELx-,对应的十进制值是:

2?0+2?1+2?2+0x2?3+0x2?4+2?5+2?6+2?7+2?8+2?9+2?10+2?11+2?12+2?13+2?14+0x2?15 = 32743

该值按16进制排列,对应如下:

高位                         低位

0111     1111     1110      0111 à 2进制

7        F        E         7  à 16进制

下表242进制对应的16进制的转换表:

1111

1110

1101

1100

1011

1010

1001

1000

0111

0110

0101

0100

0011

0010

0001

0000

F

E

D

C

B

A

9

8

7

6

5

4

3

2

1

0

(2)

建议用电脑自带的计算器来处理,用二进制输入对应位的值,然后转为10进制的值,16进制值。

2进制值输入如下图3:
                                                                           

 

(3)

选择10进制后,会直接得到需要的整数值,如图4:

                                                                           

 

(4)

选择16进制后,会直接得到需要的数值,如图5:

                                                                           

 

(5)

3. 解决方案:

因此,在控制卡初始化成功后,需要加入如下函数&对应的参数值:

      D1000_in_enable 0, 32743

:  

      D1000_in_enable 0, &H7FE7

在需要检测气缸两端的磁环感应开关的状态时, 按如下处理即可(依照图2Elx+ 对应IN4)

      If (D1000_in_bit(4= 0 ) then

      ‘下面加入处理段落,

 

End if

 

 (依照图2Elx- 对应IN5)

If( d1000_in_bit(5) = 0 ) then

‘下面加入处理段落,略

 

      End if

 

4. 同理:在此基础上,如需将全部减速专用输入SDxx改为通用输入,D1000_in_enable 0, xx, xx, 对应的2进制位设置如下表3

高位

 

 

 

 

 

 

 

 

 

 

 

 

低位

15

14

13

12

11

10

9

8

7

6

5

4

3

2

1

0

0

0

0

0

0

0

0

1

1

1

1

0

0

1

1

1

(3)

转换为10进制后的值是

2?0+2?1+2?2+0x2?3+0x2?4+2?5+2?6+2?7+2?8+0x2?9+0x2?10+0x2?11+0x2?12+0x2?13+0x2?14+0x2?15  = 487

转换为16进制后的值是1E7,如下图6:
                                                                           

 

(6)

因此,在控制卡初始化成功后,需要加入如下函数及参数值:

      D1000_in_enable 0, 487

      D1000_in_enable 0, &H1E7

然后,在需要检测对应输入位SDx+(映射感应器或按钮开关)的状态时,按如下处理即可(依照图2SDx+ 对应IN10)

      If (D1000_in_bit(10= 0 ) then

      ‘下面加入处理段落,

 

End if

结束

投诉建议

提交

查看更多评论