我想开发一个从PLC机器(MELSEC-Q系列)读取数据的应用程序。目前,我正在使用kepware读取数据。但是,我必须事先指定我想读的PLC地址。我想构建我自己的应用程序,这样我就可以在特定的时刻指定我想要读取的PLC地址。我怎么能做到这一点(任何编程语言都可以)?有什么模块可以这样做吗?
注:
实际上,我想要一个编程语言中的函数,如:
function (Read PLC Addresses X2, Y8 .... )
{
//read value of those PLC addresses
// report to excel file
}
我是这个领域的新手。所以,如果有什么问题,
class plc:
def __init__(self,name,zones):
self.list_zones=[]
self.name= name
for zone in zones:
self.list_zones.append(zone)
def actie(self):
print self.name
class zone:
def __init__(self,name,conveyors):
self.list_conveyors=[]
因此,我有一个烧瓶应用程序,将服务的地位,一些模块正在管理的PLC。我将在我的应用程序上得到非常频繁的get请求(~每1秒),每次GET调用,我将不得不从PLC获取状态。我使用连接到一个可编程控制器。它们连接到PLC的方式显示在基本用法中:
import pyads
# connect to plc and open connection
plc = pyads.Connection('127.0.0.1.1.1', pyads.PORT_SPS1)
plc.open()
# read int value by name
i = plc.read_by_name("
我需要将字符串、实数、整数、字节数据写入可编程控制器,但当我写入字符串数据StaticHelper.serializeS7String时会提示我如何才能满足我的要求?
org.apache.plc4x.java.api.exceptions.PlcRuntimeException: Not implemented yet
at org.apache.plc4x.java.s7.utils.StaticHelper.serializeS7String(StaticHelper.java:141)
at org.apache.plc4x.java.s7.readwrite.io.DataItemI
我已经构建了以下存储过程。它似乎工作得很好,而且数据也在表中。但是,可编程逻辑控制器无法选择@QueryComplete值为1。这里的问题可能是什么。唯一的错误警告如下:
形式参数@QueryComplete未声明为输出.
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[SP_Genealogy_WIP]
-- Add the parameters for the stored procedure here
@engine_number as nvarchar(50),
我的CODESYS程序有问题。我有三个按钮,它们被定义为输入。每个按钮都存储一个数字。例如,数字1。我现在创建了一个程序,它识别按钮上的一个边缘,并将按钮的数值(2)存储在数组中。如果现在按下值(3)的另一个按钮,该值也会再次存储在变量中。这两个变量应该加在一起。2+3= 23在我的程序中,我遇到的问题是,如果按下值为2的按钮测试器,就会得到22。这是错误的。我认为这个问题是由于按钮的瘀伤造成的。检测到几个边缘。所以我想在技术上延迟解决这个软件。你知道我怎么编程序吗?
代码:
IF (PLC_PRG.calls[5].gpio = TRUE) THEN // edge detection on
我刚接触python,在处理变量时遇到了问题。
我有functions.py文件,它包含许多函数和变量,我需要在其他.py文件中使用这些函数和变量。就像这样:
functions.py:
plc_variables = {}
plc_variables_path = ".../plc_variables.txt"
def get_plc_variables():
global plc_variables
plc_variables = some calculations which results a dictionary
main.py
import tim