技术论坛

 回复:STEP7符号寻址编程

返回主题列表
作者 主题
万泉河
至圣

经验值:29190
发帖数:10900
精华帖:131
楼主    2011-07-08 15:02:12
主题:STEP7符号寻址编程
现在有项目,只有点数清单,没有I/O地址,如何用符号方式直接先把编程做起来,有哪位有经验吗?

然后还有WINCC。
微信公众号:PLC标准化编程,ZHO6371995
n次看你的背影
奇侠

经验值:7974
发帖数:2321
精华帖:73
4楼    2011-07-08 18:57:17
精华帖  主题:回复:STEP7符号寻址编程
以前做过类似的事情:在S7里,一开始先搭建好主程序的结构,然后定义几个“模糊”符号。比如bool类型的变量将M100.0定义为“NOBIT”、byte类型变量将MB101定义成“NOBYTE”、word类型变量将MW102定义成“NOWORD”、DOUBLEWORD(Float)类型变量将MD104定义成“NODWORD”;因为在子程序中调用FC、FB时无非是将实参赋给形参。有了绝对地址后在excel中做好符号表导入S7,再用相应的真实符号替代“模糊”符号。不过wincc我没有做过,还望广大坛友赐教!
佛对我说:“你的痛苦来自于你的欲望,没有欲望也就没有痛苦!”
明天
侠客

经验值:944
发帖数:211
精华帖:3
7楼    2011-07-08 22:01:04
精华帖  主题:回复:STEP7符号寻址编程
这个问题我也遇到过,我使用的处理方式:

输入刷新 DI,AI--->中间变量
程序1
程序2
。。。。
输出刷新 中间变量-->DO,AO

说明:所有的输入变量先赋值给中间变量,程序使用的输入外部点都是连接这个中间变量;输出也一样,程序先赋值给中间变量,在程序的最后再将中间变量赋值给外部DO ,AO;

有2个好处,第一就行楼主这个问题,第二就是调试很方便,先把外部变量甩开;09年开始的所以PLC项目我都采用这个结构,个人感觉很方便;
eaglesky
侠圣

经验值:2989
发帖数:660
精华帖:22
10楼    2011-07-09 04:11:47
精华帖  主题:回复:STEP7符号寻址编程
个人经验:
1.STEP7的BLOCKS的属性中Object Properties中的地址优先级中选择符号优先,建立好符号表后就可以编程了。这种情况下符号不变,修改地址后,FC、FB等只需要重新打开一次确认一下,软件自动识别一次即可。以后也可以随时改。
2.建立中转变量。比如在M区建立地址表,程序中全部使用M区作为I/O来编程,将来再建立功能块将实际I/O与M区对应赋值。但是有个问题是对PIW/PQW来说不太合适。

WinCC不知道怎么处理好,要是我的话就只做画面,等有了地址后再连接变量,或者是建立变量的时候地址随便写,等将来有了具体地址通过EXCEL编辑后将正确的变量覆盖导入。
没有个性的签名就别签了。
我心依旧555
奇侠

经验值:6657
发帖数:769
精华帖:9
11楼    2011-07-09 11:46:05
精华帖  主题:回复:STEP7符号寻址编程
为其分配一块全局变量区域,用于状态交换,同时通过参数逻辑与和逻辑异或控制状态的有效及信号的翻转。
尽量使用块编程,功能上可多次调用,内部使用局部变量或静态全局变量。地址分配好后在功能或功能块上直接填参数。
一切皆有可能
姑苏城外
侠圣

经验值:3598
发帖数:1466
精华帖:19
12楼    2011-07-09 14:01:34
精华帖  主题:回复:STEP7符号寻址编程
quote:以下是引用n次看你的背影在2011-07-08 22:10:57的发言:
“姑苏城外”大侠!能否详细叙述一下您的思路,让我辈也学习一下!望大侠不吝赐教!
FB相对FC的有它的背景数据块,所有的IO都在背景数据块里,以最常用的启停回路为例:

建立如上FB块时,编程初期可以不填写具体IO地址,HMI可以直接访问IDB的DBX0.0(启动按钮)/0.1(停止按钮)/2.0(马达输出),后期地址规划好后再填入就可以了.
缺点就是要求CPU性能足够,比使用FC占用更多的存储容量.
与人规矩,不与人巧!
我心依旧555
奇侠

经验值:6657
发帖数:769
精华帖:9
30楼    2011-07-10 11:33:56
精华帖  主题:回复:STEP7符号寻址编程
可以确认的是FC内OUT参数是不能自锁的(FB与FC有时的互换性受影响)。
在FB内未做过相关试验,下面的话纯属推论。
如果程序真如下
2.
A M0.0
= DB2.DBX0.0
A M0.1
= DB2.DBX0.1
A(
O DB2.DBX0.0
O DB2.DBX2.0 //跟输出实参M0.2的状态没有关系.
)
AN DB2.DBX0.1
= DB2.DBX2.0
A DB2.DBX2.0
= M0.2
在DB2.DBX2.0运行中为1,并突然断电,上电之后又未做相关的初始化时,DB2.DBX2.0是否还为1。如果为1程序的安全性是否会受影响的
若然如此,程序会多一控制旁路。
一切皆有可能
您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。