桂林西门子以太网6XV1840-2AH10
在工业自动化这个行业里,相信大多是都知道PLC这个自动化产品吧。可惜关于西门子PLC,又知道多少呢?本文就是阐述西门子PLC的工作原理及运行过程。
*处理器是西门子PLC正常作业的神经**,当PLC投入运转时,首要它以扫描的方法接纳现场各输入设备的状况和数据,并别离存入I/O映象区,然后从用户顺序存储器中逐条读取用户顺序,颠末指令解说后按指令的规则履行逻辑或管用运算的成果送入I/O映象区或数据寄存器内。等所有的用户顺序履行结束之后,较终将I/O映象区的各输出状况或输出寄存器内的数据传送到相应的输出设备,如此循环运转,直到中止运转。
其次是存储器。存储器是寄存体系软件的称之为体系顺序存储器;寄存应用顺序的存储器则被咱们成为是用户成粗存储器。
其三是电源。当PLC投入运转后,其作业进程通常分为三个期间,即输入采样、用户顺序履行和输出改写三个期间。完结上述三个期间称作一个扫描周期。
西门子自动化产品PLC是一种专业应用于企业的计算机,全名为可编程控制器。当西门子可编程器投入运行时,其工作过程通常分为三个阶段,即输入采样、用户程序执行和输出刷新三个阶段。完成上述三个阶段称作一个扫描周期。在整个运行期间, PLC的CPU以一定的扫描速度重复执行上述三个阶段
如何实现两台PLC之间的MODBUS无线通信?
在工业现场可能会遇到这样的情况,分布在不同地方(车间、控制室场所等)的PLC之间需要进行远程相互控制,通常是采用RS485总线,通过MODBUS协议完成此功能。
如果现场布线不方便的话,也可以采用无线方式进行通信。这里以达泰DTD433无线模组和台达DVP-80EH为例进行说明。
一、两DVP-80EH台达PLC之间的远程控制
实现的功能:
l PLC1的8个开关量输入,X0~X7与PLC2的开关量输出Y0~Y7一一对应,也就是说上图中的A1开关按下时,PLC1的开关量输入X0闭合,PLC2的输出继电器触点Y0导通,L2点亮。
l PLC1与PLC2之间的通信是通过RS485总线连接的,其中采用了Modbus协议。
二、台达PLC通信中的Modbus协议编程方法
设把PLC1作为主站,PLC2作为从站,分别编写主站和从站程序,主要掌握以下要点:
Modbus主站读写程序
l Modbus RTU主站功能是通过指令库中预先编好的内存值实现的,该内存值可以用WPL软件:->辅助编程->通信格式设置,在这个工具中输入你想要的通信格式,然后生成对应的内存值。
Modbus RTU主站中一定要设置通信模式,模式编号请查阅WPL软件的文档。
上述程序解析:
l M1002常开触点,当系统RUN以后*次扫描为:ON,之后都为:OFF;该脉冲的宽度为一次扫描周期;
l MOV H81 D1120为设置通信格式为:9600-8-n-1;
l 通信格式保持应用命令;
l 设置通信逾时300ms;
l 设置主站的通信模式为Modbus RTU
Modbus从站读写程序
上述程序解析:
l M1002常开触点,当系统RUN以后*次扫描为:ON,之后都为:OFF;该脉冲的宽度为一次扫描周期;
l MOV H81 D1120为设置通信格式为:9600-8-n-1;
l 通信格式保持应用命令;
用户出现的问题:PLC无法与DTD433模块通信
用户程序:
原因分析:
本程序无法通信主要原因是:
1.PLC的通信格式和DTD433C的数据通信格式不一样,上图用户程序里设置的通信格式为:9600 7-E-1;而DTD433模块通信格式为:9600 8-N-1;
2.PLC没有选择正确的通信模式,上图程序中没有设置,一般是要设置的。
解决方法:
1.改变用户PLC程序中通信格式设置,设置为9600 8-N-1;也就是说采用的波特率为9600、8位的数据位、无校验、1位的停止位;上图中用户程序设置通信格式的语句为MOV H80 D1120,其中MOV为数据传送指令,将H80传送到D1120,而H80对应的数据格式为9600 7-E-1(波特率是9600、数据位是7位、偶校验、停止位1位)查询方法如下图:
D1120是设置通信的功能口,所以只要把通信格式设置为9600、8-N-1对应该的内存值,如下图所示:
所以设置通信格式的命令应该改为:MOV H81 D1120
2.加入设置通信模式的语句,设置为Modbus RTU模式(RTU模式只能是8位的数据位);设置通信模式的指令需要用到SET指令,当SET指令被驱动,其的元件被设置为On,且被设置的元件会维持On,不管SET指令是否仍被驱动;设置Modbus RTU模式时,因为本次设置的主机用的是COM2口(D1120也是用在COM2口的),所以设置Modbus RTU模式的特殊继电器为:M1143;因此设置通信模式的命令应该为:SET M1143。
通过上述两个方面的修改,PLC和DTD433模块通信成功