技术论坛

 怎样将S7-300/400的库移植到S7-1500

返回主题列表
作者 主题
空果仁
侠圣

经验值: 4925
发帖数: 210
精华帖: 47
楼主    2022-02-25 09:58:34
主题:怎样将S7-300/400的库移植到S7-1500 精华帖 

        在STEP7中有项目和库的区分,这个库与TIA博途的相比非常简单,只包含程序块,库中的程序块中包括DB、FC、FB以及SFC和SFB。怎么移植S7-300/400的库到TIA博途中并可供S7-1500使用呢?我们先看一下STEP7项目的移植过程。

        在不包含硬件的情况下,移植的过程如下:

        1) 对原有STEP7项目进行一致性检查,更正程序中不一致的块,例如调用FC后,再次修改FC的接口参数,这样将造成程序不一致,导致时间冲突。操作如图1所示。

        2) 平台的移植。就是从STEP7移植到TIA博途平台。在TIA博途中点击“项目移植”选项后,再选择STEP7源项目打开就可以了。如图2所示。这个过程程序不会发生任何变化,但是TIA博途平台在打开的时候,后台也在打开STEP7并对项目进行编译,看看是否缺少相应的软件。TIA博途平台对程序的架构和数据类型的检测非常严格,平台移植非常简单,但是保证编译无错不简单,通常都是上百个错误,主要是源程序编写不严谨。

        3)将TIA博途中的S7-300/400程序移植到S7-1500,如图3所示。移植后替换S7-300/400程序中使用的SFC和SFB,因为系统发生变化,系统程序块不一定完全匹配。

        简单的说,移植过程就是这三步了。如果是一个STEP7的库应该怎么移植呢?我们先看一个实例。使用STEP7解压缩打开后,库中包含若干个程序块文件夹,如图4所示。

        每一个程序块文件夹就相当于项目中的站,大家这里需要注意,库文件只能在“Libraries”标签中打开,如图5所示。

        库文件的存储文件后缀是*.S7L,而项目文件是*.S7P,如图6所示。

        TIA博途只能移植项目文件即*.S7P文件,所以必须将库文件转化为项目文件。在STEP7 中创建一个项目,将库文件一个一个地复制到项目中,这样库中所有的程序块就包含在一个项目中,然后就可以对该项目进行移植了。这里注意,源程序是SCL编写的,所以在STEP7中还需要安装SCL。

注意:

        如果没有SCL的源文件,使用TIA 博途打开后,程序块可能将加锁保护,这样就不能移植到S7-1500了。这里可能还需要在STEP7中将程序块中的代码复制过来并放到STL创建的程序块中,然后再执行平台的移植。

        后续的过程就是前面介绍的移植3步了,希望第二部编译没有问题,但是概率比较小。其实大部分问题就是数据类型的不匹配。在S7-300/400中使用STL编程从来不需要考虑数据类型的匹配问题,这可能就是问题的根源。但是在S7-1500中增强了数据类型的安全性,所以检查严格了,原来这样的编程不允许了。参考图7数据类型不匹配的问题。

        错误描述为:“运算符“*” 与“DInt” 和“Real” 的数据类型不兼容。”程序中TIME_TO_DINT(#t)将“t”转化为DINT类型,而“M”是Real类型,这两个类型不能相乘。再看前面是REAL_TO_DINT,所以需要将“t”最终转换为Real类型,更改的程序如图8所示,感觉一直再转换。

        还有一类错误是程序框架错误,如图9所示。

        明明返回值“OVERRIDE”赋值了,怎么报无返回值呢?查看程序发现,返回值的赋值都是有条件的,如果条件都不成立怎么办?可能是一个随机值。再前面加一个初始化就可以了,如图10所示。

        程序移植成功后,在项目树下是一个一个的S7-1500 的PLC站点。需要将站点中的程序块存放到TIA博途的库中。例如在TIA博途中创建新的库,按照原库中的格式创建文件夹,然后将移植的程序块复制到相应的文件夹中,如图11所示。这样S7-300/400的库移植到S7-1500库的工作就完成了。



来自西门工业子技术支持 高级专家
yzm_cumt
至圣

经验值: 18166
发帖数: 2649
精华帖: 14
1楼    2022-02-25 10:24:44
主题:回复:怎样将S7-300/400的库移植到S7-1500

确实是必须严格按照步骤执行,否则都是错误

sometimes you have to be your own hero!
黑猫警长W
至圣

经验值: 18274
发帖数: 2391
精华帖: 1
2楼    2022-02-25 11:17:02
主题:回复:怎样将S7-300/400的库移植到S7-1500

这个是干货

华山松柏
奇侠

经验值: 5622
发帖数: 541
精华帖: 3
3楼    2022-02-25 16:15:20
主题:回复:怎样将S7-300/400的库移植到S7-1500

学习了,谢谢楼主分享。

学无止境
工控女将
侠圣

经验值: 4232
发帖数: 344
精华帖: 1
4楼    2022-02-27 08:14:33
主题:回复:怎样将S7-300/400的库移植到S7-1500

这个是好东西,立马来把实操

理想很丰满,现实很骨感
yecao2006
至圣

经验值: 17879
发帖数: 1522
精华帖: 2
5楼    2022-02-28 08:29:24
主题:回复:怎样将S7-300/400的库移植到S7-1500

非常实用,马上操作一次。

我回来了!继续努力!
sansan33
侠士

经验值: 1781
发帖数: 310
精华帖: 0
6楼    2022-02-28 18:05:53
主题:回复:怎样将S7-300/400的库移植到S7-1500

程序中只要有稍微复杂一点的算法

基本没有一个块是可以完全顺畅移植的

最终都要去手动处理

从之前的S5转换成S7

到现在的S7转换成PORTAL

都是这样

不过,没所谓

就是要花点时间

payne.wu
侠圣

经验值: 3163
发帖数: 164
精华帖: 0
7楼    2022-03-01 08:32:01
主题:回复:怎样将S7-300/400的库移植到S7-1500

学习了,感谢楼主!

zhcwos
侠圣

经验值: 3103
发帖数: 440
精华帖: 0
8楼    2022-03-03 09:35:03
主题:回复:怎样将S7-300/400的库移植到S7-1500

学习了,感谢

云淡风轻
新兴电工
至圣

经验值: 12783
发帖数: 1212
精华帖: 2
9楼    2022-03-05 06:54:03
主题:回复:怎样将S7-300/400的库移植到S7-1500

谢谢

感谢楼主分享

革命尚未成功,同志仍需努力.
和光同尘
奇侠

经验值: 6694
发帖数: 1090
精华帖: 1
10楼    2022-03-05 18:24:01
主题:回复:怎样将S7-300/400的库移植到S7-1500

学习了,谢谢楼主分享。

alexma1975
奇侠

经验值: 9848
发帖数: 460
精华帖: 2
11楼    2022-03-05 22:42:11
主题:回复:怎样将S7-300/400的库移植到S7-1500

不错的分享,很有借鉴意义。

启善
奇侠

经验值: 7452
发帖数: 628
精华帖: 1
12楼    2022-03-06 08:45:55
主题:回复:怎样将S7-300/400的库移植到S7-1500

学习了,谢谢楼主分享。

ifang
奇侠

经验值: 8528
发帖数: 1816
精华帖: 4
14楼    2022-04-05 16:21:08
主题:回复:怎样将S7-300/400的库移植到S7-1500

把库放到项目里面,移植项目之后再从项目中放到库中,属于借壳移植了。哈哈。

学无止境
ImHNker
侠客

经验值: 675
发帖数: 24
精华帖: 0
15楼    2022-04-20 10:38:14
主题:回复:怎样将S7-300/400的库移植到S7-1500

好文章很是精彩值得学习,给楼主点赞!

您收到0封站内信:
×
×
信息提示
很抱歉!您所访问的页面不存在,或网址发生了变化,请稍后再试。