标签: plc

学习PLC编程

我如何学习PLC编程?对于不同品牌的PLC,它会有很大的不同吗?梯形图编程与PLC编程相同吗?

plc

38
推荐指数
7
解决办法
4万
查看次数

PLC版本控制

我需要为PLC代码提出一个CM过程.

目前,该系统是使用RSLogix 5000开发的.构建产品是一个单片文件,可以加载到PLC上进行执行,并直接在开发环境中进行编辑.对于多个开发人员来说,这已成为一个问题.他们正在踩着彼此的变化.

作为类比,就像在进行Java开发时,编辑和保存源代码的唯一方法是将*.jar文件加载到IDE中,进行更改,然后将其保存回jar文件.这不太理想.

如何协调使用PLC的多个开发人员之间的更改?

version-control plc

20
推荐指数
5
解决办法
1万
查看次数

是否有一个很好的库来处理.NET中的Modbus协议?

有没有人知道一个好的(最好是开源)库来处理Modbus协议?我见过一些图书馆,但我正在寻找一些人的个人经历,而不仅仅是谷歌的十大热门点击.我认为必须至少有一个人像我那样处理PLC和自动化硬件.

对任何其他可能对您有所帮助的材料开放......

.net open-source protocols plc modbus

17
推荐指数
3
解决办法
2万
查看次数

OPC-UA的替代品

作为访问由各种PLC组成的系统的过程数据的解决方案,OPC-UA是否还有其他可行的替代方案?什么是平台独立的,可以与不同品牌的产品"说话"?

我听说过MQTT,但它似乎更像是传输协议,只有那样.它没有像信息建模等所有更高级别的东西.

谢谢你的帮助!

plc scada opc mqtt opc-ua

16
推荐指数
3
解决办法
7771
查看次数

将 PLC Siemens S7-1500 连接到 SQL Server 数据库

连接指南在这里。我跟踪指南并做了很多事情。PLC和SQL服务器连接正常,我已经成功登录SQL。
我可以insert到表update,并执行store procedures

但是当我运行select查询时,我不知道如何检索数据和读取值。

传送门

我使用 TIA PORTAL v16。

PLC:S7 1200西门子

我有一个简单的表,我想简单地读取一个整数,首先是一行!然后扩展我的工作。

这是我的表结构:

CREATE TABLE MyTable(
[id] [int] IDENTITY(1,1) NOT NULL,
[value] [int] NOT NULL,
)
) ON [PRIMARY]
Run Code Online (Sandbox Code Playgroud)

这是我的select查询:

SELECT [value]
FROM [dbo].[MyTable]
WHERE id = 12033
Run Code Online (Sandbox Code Playgroud)

预期结果:

20
Run Code Online (Sandbox Code Playgroud)

SQL 镜头

https://support.industry.siemens.com/tf/ww/en/posts/connecting-an-plc-siemens-s7-1500-to-an-sql-server-database/239392/?page=0&pageSize=10 #post939400

更新

我回答了我自己的问题,请注意,西门子最近 (11/20/2020) 发布了直接将 S7-* 系列连接到 Microsoft SQL Server 数据库的文档。所以经过验证的 anwser 是将 PLC 连接到 SQL Server 的经典和正常方式,下一个答案是最新的本机解决方案。玩得开心

c# sql-server plc tia-portal siemens

14
推荐指数
1
解决办法
6066
查看次数

成为更好/更高效的PLC程序员

我正在做我的船员/ appretinceship公司,主要是用西门子模块进行PLC编程.事实上,大多数人都是电动人员并转投工程学.

我作为新手的问题是,当我编写PLC软件时,我不能真正高效和快速.

即使我在VS/Eclipse中编写C#或Java时非常有效

与"真正的"编程语言相比,我无法用PLC实现高效率.

  • 是否缺少代码完成?
  • 是否缺乏自动化方面的整体知识?
  • 与VS(LINQ,Dynamics,Lambda)相比,PLC缺乏创新吗?

你们对PLC有什么好的经验吗?你是如何通过它获得高效的?

注意:这是我去公司的最后一年,这也是我想要提高工作效率的原因.

期待许多伟大的答案!

performance plc

13
推荐指数
2
解决办法
2万
查看次数

测试梯形逻辑

我们都知道测试OO系统的各种方法.但是,看起来我将要做一个我将处理PLC梯形图逻辑的项目(不要问:/),我想知道是否有一种很好的方法来测试系统的有效性.

到目前为止,我看到的唯一方法就是构建一个包含系统所有已知状态的巨大表,以及生成的输出状态.对于简单的'如果输入A打开,则在'情况下转动输出B'.我认为这不适用于更复杂的结构.

testing logic plc

10
推荐指数
1
解决办法
4509
查看次数

什么是历史学家?

历史学家在OPC和PLC方面的作用是什么?

plc historian opc

10
推荐指数
1
解决办法
1万
查看次数

如何将pythons Decimal()类型转换为INT和exponent

我想在python中使用Decimal()数据类型并将其转换为整数和指数,以便我可以将数据发送到具有全精度和十进制控制的微控制器/ plc.https://docs.python.org/2/library/decimal.html

我有它工作,但它是hackish; 有谁知道更好的方法?如果不是我自己用什么路径写一个较低级别的"as_int()"函数?

示例代码:

from decimal import *
d=Decimal('3.14159')
t=d.as_tuple()
if t[0] == 0:
    sign=1
else:
    sign=-1

digits= t[1]
theExponent=t[2]
theInteger=sign * int(''.join(map(str,digits)))

theExponent
theInteger
Run Code Online (Sandbox Code Playgroud)

对于没有编程PLC的人,我的替代方法是使用int并在两个系统中声明小数点或使用浮点(只有一些PLC支持)并且是有损的.所以你可以看到为什么能够这样做会很棒!

提前致谢!

python microcontroller plc decimal data-conversion

10
推荐指数
2
解决办法
1795
查看次数

C#OPC应用程序相同的代码,但工作方式不同

我正在开发一个C#自定义OPC客户端,我开始在控制台应用程序中快速写入,一切都按照我的要求完美运行.

然后我决定制作一个Windows窗体应用程序以获得视觉体验.

Windows窗体应用程序只是停止工作,大约一分钟后停止从OPC服务器读取数据.控制台应用程序在哪里继续阅读和阅读.

在调试模式中我也找不到任何明显的东西.

我绝对抓着稻草在这里,希望有人可以解决一些问题.

每个应用程序都使用OPCFoundation提供的.dll文件.

这是控制台应用程序

 static void Main(string[] args)
        {

            Opc.URL url = new Opc.URL("opcda://localhost/RSLinx OPC Server");
            Opc.Da.Server server = null;
            OpcCom.Factory fact = new OpcCom.Factory();
            server = new Opc.Da.Server(fact, null);
            server.Connect(url, new Opc.ConnectData(new System.Net.NetworkCredential()));
            // Create a group
            Opc.Da.Subscription group;
            Opc.Da.SubscriptionState groupState = new Opc.Da.SubscriptionState();
            groupState.Name = "Group";
            groupState.Active = true;
            group = (Opc.Da.Subscription)server.CreateSubscription(groupState);
            // add items to the group.
            Opc.Da.Item[] items = new Opc.Da.Item[6];
            items[0] = new Opc.Da.Item();
            items[0].ItemName = "[UX1]F20:9";
            items[1] = new Opc.Da.Item();
            items[1].ItemName …
Run Code Online (Sandbox Code Playgroud)

c# plc console-application opc winforms

10
推荐指数
1
解决办法
1317
查看次数