西门子200PLC modbus通讯 老报故障6
据我实验观察,一般是MSG块在同一时间被调用出现报6,比如我前段时间做一个小项目中,需要对从站进行读和写,读40003,写40001,我是用定时器做间隔定时触发读操作,而写操作就用读操作完成标志来触发,一开始,发现有时读操作的MSG块报6,然后我找了好久没发现问题,后来仔细查找,发现定时器定时是周期的,但传送数据需要时间的,慢慢的,总会产生在写操作时,定时器定时时间到了,就会发出触发条件,这时还不会出错,但是下一次扫描就一定报6,因为下一次扫描时,写操作可能还在进行中,所以会出现两个MSG同时调用,这就出现报6的现象了。所以建议你自己仔细的查看一下你的程序,是否有可能同时触发多个MSG的读写操作。希望有用。另外,只调用一个MSG也可以出现报6,就是在不停的进行同一个MSG调用(周期读写数据),如果这个周期过短则出现这个问题,你需要了解一下,一个初始化CTL需要1.8ms左右(好像是这个数字,记不太清除),而一个BYTE发送也需要MS级的时间,若传送速率低的话,加上传送数据比较多的话,很容出现上次数据还没传送完,新的一次传送又开始了,所以要计算一下你的读写内容所需要的时间,当然,最好是用MSG的完成标志做一下限制,防止同时调用就好了。
HITECH触摸屏上的拨码开关是怎么定义的?
这是pws6600系列的指拨说明,希望对你有用。指拨 (Dip Switches) 功能SW1 保留SW2 保留SW3 SW4 作业模式ON ON 使用者正常操作模式ON OFF 执行生产烧机程式OFF ON 更新BIOSOFF OFF 执行硬体测试 SW5 通讯参数设定ON 人机使用硬体的通讯参数与PLC通讯OFF 人机使用ADP的通讯参数与PLC通讯 SW6 输入密码否ON 当人机开机自我测试后,要求输入密码,随之进入系统目录OFF 当人机开机自我测试后,不要求输入密码,随之进入系统目录 SW7 进入系统目录ON 进入系统目录OFF 不进入系统目录, 直接进入使用者应用程式 SW8 预设使用者等级ON 如人机不要求输入密码 (SW6 OFF), 预设使用者等级=1OFF 如人机不要求输入密码 (SW6 OFF), 预设使用者等级=9 SW9 人机背面COM1规格设定ON RS485通讯: SW9=ON SW10 ONOFF 人机背面COM2规格设定RS485通讯: SW10=ON RS422通讯: SW10=OFF
2个西门子PLCS7-200通讯问题
S7-200 CPU之间最简单易用的通信方式就是PPI通信.
PPI协议是专门为S7-200开发的通信协议。S7-200 CPU的通信口(Port0、Port1)支持PPI通信协议,S7-200的一些通信模块也支持PPI协议。Micro/WIN与CPU进行编程通信也通过PPI协议。
S7-200 CPU的PPI网络通信是建立在RS-485网络的硬件基础上,因此其连接属性和需要的网络硬件设备是与其他RS-485网络一致的。
S7-200 CPU之间的PPI网络通信只需要两条简单的指令,它们是网络读(NetR)和网络写(NetW)指令。
在网络读写通信中,只有主站需要调用NetR/NetW指令,从站只需编程处理数据缓冲区(取用或准备数据)。
PPI网络上的所有站点都应当有各自不同的网络地址。否则通信不会正常进行。
可以用两种方法编程实现PPI网络读写通信:
使用NetR/NetW指令,编程实现
使用Micro/WIN中的Instruction Wizard(指令向导)中的NETR/NETW向导
有关网络读写(NetR/NetW)指令的详细情况必须参考《S7-200系统手册》。
每条网络读写指令最多能够读或者写16个字节的数据;每个CPU内最多只能有8条网络读写指令同时激活,而网络读写指令的数目没有限制。
只有通信主站能够使用网络读写指令。缺省情况下,S7-200 CPU的通信口设置为从站模式。因此在编程时,需要把通信口设置为通信主站模式。
在一个PPI网络中,与一个从站通信的主站的个数并没有限制,但是一个网络中主站的个数不能超过32个。主站既可以读写从站的数据,也可以读写主站的数据。也就是说,S7-200作为PPI主站时,仍然可以作为从站响应其他主站的数据请求。
一个主站CPU可以读写网络中任何其他CPU的数据。
由于串行通信的特点,通信数据的接收(或者发送)是不能与PLC程序的扫描周期配合的。所有的通信活动都需要PLC操作系统的管理,网络读写(包括其他类似的通信指令)指令只是告诉操作系统有需要处理的通信任务。因此,网络读写指令采取通信数据缓冲区的方式,在操作系统的通信管理功能与PLC的用户程序之间交换信息。
网络读写指令(NetR/NetW)的数据缓冲区类似。数据缓冲区除了状态字节和地址、数据长度之外,剩余的部分就是纯数据字节。能够传送到通信对象,或者从对象接收的仅仅是数据字节,不包括数据个数等信息。远程站(通信对象)的数据缓冲区则是纯数据区域。
网络读写指令可以传递V存储区、M存储区、I/Q区的数据。这取决于设定数据地址时,使用间接寻址方式将地址信息写入到缓冲区中的相应位置,地址信息中包括了存储区和数据的类型。
网络读写编程大致有如下几个步骤:
规划本地和远程通信站的数据缓冲区
写控制字SMB30(或SMB130)将通信口设置为PPI主站
装入远程站(通信对象)地址
装入远程站相应的数据缓冲区(无论是要读入的或者是写出的)地址
装入数据字节数
执行网络读写(NetR/NetW)指令
各CPU的通信口地址在各自项目的System Block(系统块)中设置,下载之后起作用。
调用NetR/NetW指令
多数网络读写的不正常现象,除了硬件设备和软件设置的问题外,与在用户程序中调用网络读写指令的方式有关。包括看起来通信正常,但经过一段时间(可能是几天)后也会出现故障的现象。
使用用NetR/NetW时,应当注意:
避免简单地定时激活NetR/NetW:由于串行通信的特点(如上所述),无法得知何时真正结束。如果定时进行网络读写通信,必须判断此次通信是否正常结束
同时有效的NetR/NetW指令不能超过8个,否则通信请求队列会超出操作系统的管理能力
使用SM0.0调用网络读写指令,虽然能长期工作,但不能超过8个指令,而且会出现监控时指令块变为红色的现象,最好还是加上必要的读写状态判断条件。
最简单可靠的方法,是使用Micro/WIN中的NetR/NetW Wizard(网络读写指令向导)。
使用NetR/NetW向导可以编辑最多24条网络读写指令,其核心是使用顺序控制指令,这样在任一时刻只有一条NetR/NetW指令有效。如果要求超出24条网络读写指令,可以自己按照此方法编程。
清除网络读写指令数据缓冲区中的(故障)状态字节可以恢复“死掉”的通信。但还是建议用户采用比较正规的编程方法。
PLC常见硬件有哪些
一般有电源,CPU,I/O模块,通信,扩展等。
按照三菱Q系列的模块化PLC,有以下硬件模块:
1,电源模块,给整个CPU供电,可以从220到12v,5v等
2,CPU模块,主要有CPU,通讯电路等,控制整个PLC的大脑。内部有CPU,内存等
3,I/O模块,主要为对外连接的I/O端口的模块,根据你的需要的I/O端口数决定安装多少个I/O模块。
4,扩展模块,如模拟量,特殊检测模块等,根据不同需要进行选配