• 倍福TwinCAT(贝福Beckhoff)应用教程11.1 TwinCAT应用小程序1 如何读写数字量模拟量输入输出(DI,DO,AI,AO)


    常见的模拟量模块(还有更高端和更低端的,使用方法都一样)

    EL3054和EL4024(4路模拟量输入和输出模块)

     

    常见的数字量模块(还有更高端和更低端的,使用方法都一样)

    EL1809和EL2809(16路数字输入和输出模块)

     

    贝福模块的一个优点就是模块化结构(你可以选择要多少个数字输入输出,模拟量输入输出,也可以不要,所以扩展IO会非常方便,只需要多加一片就可以了,一片还可以分为2个,4个,8个,16个点的)

     

    右击项目的IO-Devices,然后Scan(如果Scan不可用,请先把TwinCAT切换到Config模式下),然后扫描出来所有的数字量模拟量输入输出

     

    可以先把简单的数字量输入输出做好,先定义一个BOOL类型的数组,注意加了AT%I和AT%Q,分别要和扫描出来的数字输入和输出链接

     

    数字量输出比较简单,可以直接用一个Checkbox来表示数据(修改Variable的属性为对应的数组元素即可),实际测试的时候,勾选表示TRUE,不勾选表示FALSE(可以测试当DO输出的时候,对应的继电器有反应了)

     

    同样使用Checkbox来表示数字输入(可以测试当传感器有输入的时候,对应的方框勾选,没有输入则方框不勾选,即便人为勾选也不会有反应)

     

    对于模拟量输出EL4024来说,输出最终转换成4-20mA的数据

     

    我们可以自己写一个简单的转换(因为真实绑定到端口上的数据是一个INT类型,而我们只知道输入4-20mA这种有意义的数据,可以在某个绑定的变量上修改Display Scaling为4-20来查看对应的mA值),并且我们知道转换过程应该是线性的,给定最低输入4mA的时候,应该实际往绑定INT变量给一个0,给定最高输入20mA的时候,应该输出一个32767

     

    实际测试也确实如此,当AO_0给4-20的时候确实可以在这个数据内变动,同时可以观察到Online的数据也是对的

     

    在实际连接中,我往AO_0端口写入了13.45mA的电流值,可以用万用表测试确实是这么多

     

     

    对于模拟量输入EL3054来说,输入的最终需要转换成4-20mA的数据

     

    转换过程雷同,只不过现在是把0-32767的INT类型输出变成我们能够看懂的4-20mA的输出,具体可以看代码,也是y=kx+b的公式得到的

     

    在实际连接中,我在AI_0端口接了一个电阻,并用万用表测试了电流值,确实和TwinCAT采集到的是一致的

     

     

    更多教学视频和资料下载,欢迎关注以下信息:

    我的优酷空间:

    http://i.youku.com/acetaohai123

     

    我的在线论坛:

    http://csrobot.gz01.bdysite.com/

     

    问题交流:

    QQ:910358960

    邮箱:acetaohai123@163.com

     

     

     

  • 相关阅读:
    关于springMVC转换json出现的异常
    jQuery实现,动态自动定位弹窗。JS分页,Ajax请求
    servlet为什么要配置web.xml
    Jmeter系列(4)- Jmeter 脚本录制
    后缀数组模板
    NOIP2016 玩脱记
    TERSUS无代码开发(笔记21)-流程执行顺序思考(转载)
    ===>===>===>特色思TERSUS常用功能整理
    TERSUS无代码开发(笔记20)-本地开发测试mysql数据库连接
    TERSUS无代码开发(笔记19)-mysql-connector-java-5.-bin.jar下载方法
  • 原文地址:https://www.cnblogs.com/acetaohai123/p/6823687.html
Copyright © 2020-2023  润新知