施耐德PLC通讯的套路就是三个功能块,ADDM ,READ_VAR,WRITE_VAR,下面分别介绍
1 ADDM
ADDM功能块是地址转换,就是把PLC 的物理地址转换成PLC可识别的地址类型,这句话比较拗口,通俗讲,就是把字符串型变量,转换成ADDRESS 型变量,我们还是看例子
图一 ADDM功能块
如图一,图中红色圆圈内就是一个字符串型变量 '2,1' 第一个数字2表示PLC 的串口2,第二个数字1 表示读取的从站地址,也就是变频器的地址,而此功能块就是把此地址转换成ADDRESS型变量 A1_Add。也许你会有疑问,为什么这么做?我也不知道,此款PLC就是这样,这就是它的套路,对于此种套路,我们只能牢记。在其他PLC特别是日系,一般是通过设置参数的方式实现,也有使用指令的。
还有一点,黄色荧光笔部分的三个黑点,是表示电路相通,而它正是把转换好的地址赋值给下面我们要介绍的功能块。也就是说,读写功能块读取或写入变量的从站地址就是使用变量A1_Add。
2 WRITE_VAR
此功能块是用于往从站写数据,也就是写入变频器的运行频率。
图二 WRITE_VAR 功能块
这个功能块的信息量就很大了,我们一点点分析
1 看黄色荧光笔部分 Addr,这个就是从站的地址,也就是变频器的地址,它是一个ADDRESS型变量,就是我们在ADDM功能块中转化的,就是图一的那三个黑点,就是连接到此处的,这也是CFC的优点,要用的变量轻松一连,而在FBD或是LD 中,我们就要建立一个中间变量传递一下了。
2 下面三处用荧光笔表示的 就是此功能块的精髓了,它表示往变频器的地址0002开始写入一个WORD型变量,而写的这个数值放在PLC变量Fre里,这就是这个功能块的目的,也是此次通信的目的,执行结果,就是把PLC变量Fre的值,写到了变频器的0002里面。当然,此处我们只写入了一个WORD,其实此功能块是支持一次写入125个的,因为Quantity是一个SINT型变量。Fre是一个数组型变量,当我们要一次写入很多数值的时候,用数组就很方便了。
3 右边红色圆圈是功能块的输出,它表示了功能块执行的各种状态,它是标准的PLCopen信号
Done 表示功能块执行正常后置为TRUE,此处,我们取它的反信号来监控通信状态,如果超过3S没有Done信号,我们可以认为此次写入失败,那么就代表通信失败。
Busy表示功能块执行情况的输出,如果为高电平,表示功能块正在执行。我们读取它的下降沿,来触发下一次操作。
Error是功能块的错误,可能你会有疑问,为什么通信错误不用这个信号呢?其实这个错误表示的范围更广,它表示功能块检测到错误就报警,有时候,我们通信正常,但是当我们读取的数据有问题,或是参数设置不正确时,也会报错,而我在程序中的错误仅仅是通信不上的错误,也就是,这个Error表示的范围更广泛,它更适合我们调试的时候监控。而我在程序中取的通信错误,是在上位机做监控用的。
3 READ_VAR
读取和写入的功能块完全一样,大家可以尝试自己分析一下。
图三 READ_VAR功能块
4 数据的处理
图四 数据的处理
这段是程序中和我们直接相关的,写入的频率,读取的频率和电流都是用MOVE指令处理,放到指定的变量中,方便我们使用,毕竟通信的最终目的就是交互数据。
设置通讯参数(主要是波特率,校验,地址),并确保PLC和变频器侧参数一致,读取或写入变量的地址,个数以及数据类型(日系PLC不需要这一步,因为它不定义变量),是使用MODBUS基本套路。当你使用不同的PLC时,你的任务就是在软件中找到实现这些功能的地方,就可以完成通信。还有一点注意,不同的厂家,MODBUS接口是不一样的,常见的有DB9 RJ45,还有最简单的螺钉接线。
五DB9
六RJ45
如 图五 图六 所示,是常用的MODBUS接线端子,使用时,务必仔细阅读手册,确定 正 负 端子。
(来源:网络,版权归原作者)
免责声明:本文系网络转载或改编,版权归原作者所有。如涉及版权,请联系删除!任何人和机构不承担相关的法律责任。
点击阅读原文,获取更多惊喜 |