在 Tia 14 中导出梯形图逻辑
Exporting Ladder Logic in Tia 14
TL;DR:在 Tia 14 中导出梯形图逻辑的最佳方法是什么?
我公司最近开始使用 Tia Portal v14。更新到期了,我们已经开始使用 S7 1500 系列 CPU 进行一些工作。我团队中的那些人已经注意到,没有一种简单的方法可以从 Tia 14 导出 LAD 逻辑(FB、FC、OB)。由于我们在不同的 PC 上工作,因此无法发送非常不方便发布更新时,各个块彼此阻塞。对于正在使用 CPU 的机器进行调试的人员来说更加不便。我们已经提出了一些解决方法,但我想听听人们对 SO 关于导出 LAD 逻辑的最佳方式的意见。
我们正在做或已经尝试过的事情:
压缩整个项目,以便可以将其发送到新电脑并复制文件(可行的解决方案,但与发送单个文件并导入相比似乎相当笨重和不方便) .
将梯形图逻辑转换为启用了 "Generate Source from Blocks" 的语言或视图(SCL、STL 等)(带有其自身的大量问题,例如转换回的问题LAD,不熟悉基于文本的语言等)。
正在研究使用第三方软件将 LAD 文件转换为 XML 的解决方案,然后通过另一端的程序重新导入(不是我)正在研究它,所以我不能提供很多细节。我团队中的一个人认为这是可能的并且正在研究它)。
如有任何疏忽或提出建议,我们将不胜感激。
您列出的第三个选项可能是执行此操作的最佳方式。您可以使用作为 .net dll 的 Openness
API。您可以很容易地导出 plc 块(在 xml
中),然后将功能块导入到另一个项目中。您甚至不必查看 xml
即可执行此操作。
这里是一个如何操作的示例代码
//Import blocks
private static void ImportBlocks(PlcSoftware plcSoftware)
{
PlcBlockGroup blockGroup = plcSoftware.BlockGroup;
IList<PlcBlock> blocks = blockGroup.Blocks.Import(new
FileInfo(@"D:\Blocks\myBlock.xml"), ImportOptions.Override);
}
private static void ExportBlock(PlcSoftware plcSoftware)
{
PlcBlock plcBlock = plcSoftware.BlockGroup.Blocks.Find("MyBlock");
plcBlock.Export(new FileInfo(string.Format(@”D:\Samples\{0}.xml”,
plcBlock.Name)),
ExportOptions.WithDefaults);
}
查看此 link 示例项目。
Openness
另一种选择是使用 TIA portal Multiuser Engineering。西门子专门针对您描述的问题创建了该解决方案。
Check it out here.
也可以创建全局库并从那里更新。
最后,只需在您的网络上连接一个 PLC 并上线。被队友更改的块显示为橙色,您可以将它们复制到本地项目。
TL;DR:在 Tia 14 中导出梯形图逻辑的最佳方法是什么?
我公司最近开始使用 Tia Portal v14。更新到期了,我们已经开始使用 S7 1500 系列 CPU 进行一些工作。我团队中的那些人已经注意到,没有一种简单的方法可以从 Tia 14 导出 LAD 逻辑(FB、FC、OB)。由于我们在不同的 PC 上工作,因此无法发送非常不方便发布更新时,各个块彼此阻塞。对于正在使用 CPU 的机器进行调试的人员来说更加不便。我们已经提出了一些解决方法,但我想听听人们对 SO 关于导出 LAD 逻辑的最佳方式的意见。
我们正在做或已经尝试过的事情:
压缩整个项目,以便可以将其发送到新电脑并复制文件(可行的解决方案,但与发送单个文件并导入相比似乎相当笨重和不方便) .
将梯形图逻辑转换为启用了 "Generate Source from Blocks" 的语言或视图(SCL、STL 等)(带有其自身的大量问题,例如转换回的问题LAD,不熟悉基于文本的语言等)。
正在研究使用第三方软件将 LAD 文件转换为 XML 的解决方案,然后通过另一端的程序重新导入(不是我)正在研究它,所以我不能提供很多细节。我团队中的一个人认为这是可能的并且正在研究它)。
如有任何疏忽或提出建议,我们将不胜感激。
您列出的第三个选项可能是执行此操作的最佳方式。您可以使用作为 .net dll 的 Openness
API。您可以很容易地导出 plc 块(在 xml
中),然后将功能块导入到另一个项目中。您甚至不必查看 xml
即可执行此操作。
这里是一个如何操作的示例代码
//Import blocks
private static void ImportBlocks(PlcSoftware plcSoftware)
{
PlcBlockGroup blockGroup = plcSoftware.BlockGroup;
IList<PlcBlock> blocks = blockGroup.Blocks.Import(new
FileInfo(@"D:\Blocks\myBlock.xml"), ImportOptions.Override);
}
private static void ExportBlock(PlcSoftware plcSoftware)
{
PlcBlock plcBlock = plcSoftware.BlockGroup.Blocks.Find("MyBlock");
plcBlock.Export(new FileInfo(string.Format(@”D:\Samples\{0}.xml”,
plcBlock.Name)),
ExportOptions.WithDefaults);
}
查看此 link 示例项目。 Openness
另一种选择是使用 TIA portal Multiuser Engineering。西门子专门针对您描述的问题创建了该解决方案。 Check it out here.
也可以创建全局库并从那里更新。
最后,只需在您的网络上连接一个 PLC 并上线。被队友更改的块显示为橙色,您可以将它们复制到本地项目。