最近研究台达触摸屏,选用型号是DOP-A57GSTD,打算与S7-300系列的CPU314通过RS485通讯(without PC adapter)。
在设置输入区域的时候想到了这个问题:
选中“输入”,生成输入区域,点击输入区域,在属性栏选择“写入储存器地址”后,弹出一个设置界面。
那么【连线】里选择“base port”,【形式】就是“PLC元件”。在【元件种类】里选好“DBW”,【地址】设为30。
那么,我们都知道S7-300可以建立很多DB块,而刚刚设好的DBW30是保存在那个DB块里了呢?
还有,在台达的“系统控制区”,也需要设置“DBW0”“DBW20”这两个地址,那么这两个控制用的地址是在那个DB块里呢?
?
由于现在是在控制系统的初步设计阶段,没有实际硬件来试验,所以想请各位有这方面经验的大侠具体的解释和指点一下,先谢谢了。
PS:这里怎么不好上传图片啊,有个图片来看就知道是什么意思了,不知道我在上面啰嗦的这么多大家看懂了没有?主要是关于这个设置里的DBW对应的是哪个DB块~~而这个设置选项中还可以选择DB的,晕鸟~~
aibi 兄在否?
现在又发现一个问题了。关于配方。
在台达屏里,配方地址可以设定为内部地址或者外部地址。
那么,如果设定为内部地址了,那个【配方控制寄存器】RECR的BIT1还有什么用呢?触发它的话,是不是就是将选定了RCPNO的一组配方值读取到RCP中?
要是设定为外部地址,那么这个倒是很好理解的,就是HMI和PLC的相互读取和写入。
这样理解对吗?
================================================================================================
另外,这个RCP地址对应的都是HMI的内部地址吧,实际上我想修改这个数的时候是要对PLC的寄存器值进行修改啊,那么这个要怎么处理呢?我怎么设置,才能实现修改了RCP地址的数值,PLC里的值也马上跟着变化呢?
是不是,我对RCP修改后,必须要将这组新的值保存到RCPNO对应的配方里;然后,具体的PLC控制,需要将这个RCPNO对应的地址的值读出来,才能实现将RCP的值应用到程序控制上?
要是这样的话,将配方地址设定为内部地址还有什么用呢?因为这样无论怎么搞,屏里的配方数据都无法传到PLC中啊!
我的理解有什么错误的地方,请指出o!
控制上是不是这样的:
我将配方定义为外部地址,DB块内的一个区域,如分为4组,DBW30~~DBW34,DBW35~~DBW39,DBW40~~DBW44,DBW45~~DBW49。
然后在HMI上进行设置的时候,要编辑一个页面,将每组配方读出,修改后再保存,这样DBW30~~DBW50里就成了修改完的值。
那么在实际应用时,根据选择的组别号,将每组【DBW30~~DBW34,DBW35~~DBW39,DBW40~~DBW44,DBW45~~DBW49】的数值放到我要用的MW寄存器里,再读取MW的值就可以了?
==============================================================================================
配方是不是这么用啊,感觉这样麻烦了一步。。。原来的想象,是在HMI中编辑一个画面,定义好它对应的PLC中的地址,然后选取组别号之后,把每组的配方内的数值对应读出,这时PLC内的数值也变过来了。这样就不用再在PLC中编程了。
汗!
那么,如果设定为内部地址了,那个【配方控制寄存器】RECR的BIT1还有什么用呢?触发它的话,是不是就是将选定了RCPNO的一组配方值读取到RCP中?
? 如果设定为内部地址($100),哪么ReCR的BIT1就是把$100连续个配方长度的数值送入配方当前值里,BIT2就是把配方当前值放入以$100开始的配方长度的寄存器里面,配方控制寄存器他就是一个和配方交换数据的存储区
第2个问题是 配方当前值只和配方当前值有直接数据交换关系,只有当你对rcp修改后,把需要和plc交换的数值放在当前值 ,通过控制区的位才可以和plc相互读取
aibi兄又来了啊。
已经很注意控制区的起始地址了,一开始系统控制区地址设定为2@DBW0,系统状态区地址设定为2@DBW20,这样设定的时候,对应的这两个控制位应该就是DBX10.1和DBX10.2 。
而且,我把配方地址号设定为RCPNO,另外做了一个数值显示设置为DBW12,这两个地址内的数值是可以同时改变的,就是说我修改了RCPNO之后,DBW12内的数据也跟着变化过来了。
其他的所有直接对应DB地址将其修改数据也都没有问题。
但就是想用PLC内的地址来控制写入、读取的时候发现这两个按钮设为DBX10.1和DBX10.2 不能正确的传输参数。
没办法,最后将系统控制区地址设定为内部的$0,然后把写入和读取的按钮定义为内部的$5.1、$5.2就可以了。
以上所有的控制区都是指DB10里面的位。
==========================================================
那么,难道是要我在PLC的控制程序中把DBX10.1和DBX10.2置ON来实现数据的写入和读出?而不能把这两个位用HMI来控制?奇哉怪也。