西门子伺服驱动代理授权经销商
国际化工业自动化科技产品供应商,西门子G120、G120C V20 变频器; S120 V90 伺服控制系统;6EP电源;电线;电缆;
网络交换机;工控机等工业自动化的设计、技术开发、项目选型安装调试等相关服务是专业从事工业自动化控制系统、机电一体化装备和信息化软件系统
集成和硬件维护服务的综合性企业。与西门子品牌合作,只为能给中国的客户提供值得信赖的服务体系,我们
的业务范围涉及工业自动化科技产品的设计开发、技术服务、安装调试、销售及配套服务领域。建立现代化仓
储基地、积累充足的产品储备、引入万余款各式工业自动化科技产品,我们以持续的卓越与服务,取得了年销
售额10亿元的佳绩,凭高满意的服务赢得了社会各界的好评及青睐。其产品范围包括西门子S7-SMART200、 S7-200CN、S7-300、S7-400、S7-1200、S7-1500、S7-ET200SP 等各类工业自动化产品。西门子授权代理商、西门子一级代理商 西门子PLC模块代理商﹐西门子模块代理商供应全国范围:
与此同时,我们还提供。
西门子中国授权代理商—— 浔之漫智控技术(上海)有限公司,本公司坐落于松江工业区西部科技园,西边和全球zhuming芯片制造商台积电毗邻,
东边是松江大学城,向北5公里是佘山国家旅游度假区。轨道交通9号线、沪杭高速公路、同三国道、松闵路等
交通主干道将松江工业区与上海市内外连接,交通十分便利。
目前,浔之漫智控技术(上海)有限公司将产品布局于中、高端自动化科技产品领域,
PLC模块S7-200、S7-1200、S7-300、S7-400、ET200分布式I/O等
HMI触摸屏、SITOP电源、6GK网络产品、ET200分布式I/O SIEMENS 驱动产品MM系列变频器、G110 G120变频器、直流调速器、电线电缆
修改以下程序代码以枚举 PC 接口上可用的子网和网关地址:
public static void EnumeratingPCInterfaceSubnetsAndGateways(ConfigurationPcInterface
pcInterface)
{
foreach (ConfigurationSubnet subnet in pcInterface.Subnets)
{
Console.WriteLine("Subnet name:{0}", subnet.Name);
foreach (ConfigurationGateway gateway in subnet.Gateways)
{
//Get the name of the gateway:
Console.WriteLine("Gateway name:{0}", gateway.Name);
//Get the IP address of each gateway:
foreach (ConfigurationAddress gatewayAddress in gateway.Addresses)
{
Console.WriteLine("Gateway Address:{0} has {1}", gatewayAddress.Name,
gatewayAddress.Address);
}
}
}
}
也可以按名称或 IP 地址访问子网和网关:
public static void AccessSubnetAndGatewayOfPCInterface(ConfigurationPcInterface
pcInterface)
{
ConfigurationSubnet subnet = pcInterface.Subnets.Find("PN/IE_1");
ConfigurationAddress subnetAddress = subnet.Addresses.Find("");
ConfigurationGateway gateway = subnet.Gateways.Find("Gateway 1");
ConfigurationAddress gatewayAddress = gateway.Addresses.Find("");
}
程序代码:设置连接参数
说明
设置连接参数时,将覆盖之前设置的所有连接参数。如果已直接在 TIA Portal 中设置连接参
数,则无需调用 ApplyConfiguration。在调用 ApplyConfiguration 时,如果已存
在到 PLC 的在线连接,则会发生异常。修改以下程序代码以设置插槽参数:
public static void SetConnectionWithSlot(onlineProvider onlineProvider)
{
ConnectionConfiguration configuration = onlineProvider.Configuration;
ConfigurationMode mode = configuration.Modes.Find(@"PN/IE");
ConfigurationPcInterface pcInterface = mode.PcInterfaces.Find("PLCSIM", 1);
// or network pc interface that is connected to plc
ConfigurationTargetInterface slot = pcInterface.TargetInterfaces.Find("2 X3");
configuration.ApplyConfiguration(slot);
// After applying configuration, you can go online
onlineProvider.Goonline();
}
修改以下程序代码以设置网关地址参数:
public static void SetConnectionWithGatewayAddress(onlineProvider onlineProvider, string
subnetName, string gatewayAddressName)
{
ConnectionConfiguration configuration = onlineProvider.Configuration;
ConfigurationMode mode = configuration.Modes.Find(@"PN/IE");
ConfigurationPcInterface pcInterface = mode.PcInterfaces.Find("PLCSIM", 1);
// or network pc interface that is connected to plc
ConfigurationSubnet subnet = pcInterface.Subnets.Find(subnetName);
ConfigurationAddress gatewayAddress = subnet.Addresses.Find(gatewayAddressName);
configuration.ApplyConfiguration(gatewayAddress);
// After applying configuration, you can go online
onlineProvider.Goonline();
}
修改以下程序代码以设置子网地址参数:
public static void SetConnectionWithSubnetAddress(onlineProvider onlineProvider, string
subnetName)
{
ConnectionConfiguration configuration = onlineProvider.Configuration;
ConfigurationMode mode = configuration.Modes.Find(@"PN/IE");
ConfigurationPcInterface pcInterface = mode.PcInterfaces.Find("PLCSIM", 1);
// or network pc interface that is connected to plc
ConfigurationSubnet subnet = pcInterface.Subnets.Find(subnetName);
ConfigurationAddressComposition addresses = subnet.Addresses;见
支持安全 S7 通信 TLS (页 475)
5.11.2.7 访问特征码以进行快速站比较
要求
• Openness 应用程序已连接 TIA Portal。
请参见“连接到 TIA Portal (页 82)”
• 已打开一个项目。
请参见“打开项目 (页 122)”
• PLC 处于离线状态。
应用
可以使用 TIA Portal Openness 获取 FingerprintData,以了解 PLC 设备组态的不同方面,从
而实现快速站比较。通过从给定 TIA Portal 获取的 FingerprintDataProvider 服务来实现。调
用 GetService 时将返回 FingerprintDataProvider 的实例,否则服务将返回 null 值。
程序代码:从 TIA Portal 检索 FingerprintDataProvider
TiaPortal tia = new TiaPortal(TiaPortalMode.WithUserInterface);
FingerprintDataProvider fingerprintDataProvider =
tia.GetService();
if (fingerprintDataProvider != null)
{
...
}
FingerprintDataProvider 方法的参数
要获取设备的 fingerprintData,您必须调用 FingerprintDataProvider 的 GetFingerprintData FingerprintDataProvider 支持以下属性:
参数名称 类型 描述
configurationAddress Siemens.Engineering.Online.Confi
guration
必须提取 fingerprintData 的设备的
地址。
onlineConfigurationDelegate Siemens.Engineering.online 将在提取 fingerprintData 前调用该
委托,以检查组态。
组态地址
用户应该为 GetFingerprintData 提供 ConfigurationAddress 对象。对于必须提取
fingerprintData 的设备,地址对象将用于为其建立一个连接。ConfigurationAddress 对象必
须在 FingerprintDataProvider 的 ConnectionConfiguration 中创建。有关
IsSecureCommunication 的信息,请参见“支持安全 S7 通信 TLS (页 475)”
例如,用户可以使用以下代码创建地址对象:
...
ConnectionConfiguration configuration = fingerprintDataProvider.Configuration;
ConfigurationMode configurationMode = configuration.Modes.Find("PN/IE");
ConfigurationPcInterface pcInterface = configurationMode.PcInterfaces.Find("Intel(R)
Ethernet Connection I217-LM", 1);
// Create an address. This "ConfigurationAddress" is used as parameter for getting the
fingerprintData
ConfigurationAddress fingerprintAddress = pcInterface.Addresses.Create("");
...
组态包含所支持的 Modes 的列表。用户需选择其中一个 Modes 用于获取特征码。所选的
ConfigurationMode 包含所有支持所选 Mode 的本地 PCInterfaces 的列表。已选择下列接口
中的一个。可在所选 ConfigurationPcInterface 的地址集中创建所需地址。
程序代码:检索 FingerprintData
用户可以通过调用 GetFingerprintData 操作来检索站的 FingerprintData。支持以下参数:
参数 描述
ConfigurationAddress 设备的地址
onlineConfigurationDelegate 处理限制的回调internal void PreConfigureFingerprint(onlineConfiguration onlineConfiguration)
{
...
}
在线组态委托
下面列出了可能的在线组态类型。
组态名称 描述和属性
onlineConfiguration • 其他组态的基础类别
• OnlineConfiguration.Message:字符串(只读属
性,包含组态消息)
由于这表示所有其它组态的基础类别,因此,该属性适配器在所有组态中均可用。
下面给出了组态的数据类型:
组态 数据类型 描述和操作
onlineConfiguration onlineReadAccessPassword 通过
SetPassword(password:SecureStri
ng) 方法 Set password 。
输入密码,获得模块的读访问权限
如果可能阻止访问特征码的组态未得到处理,则会导致出现
EngineeringDelegateInvocationException 并中止上传。如果委托中的异常未得到处理,则
会出现 EngineeringDelegateInvocationException。PreConfigureFingerprint 实现示例
private static void PreConfigureFingerprint(onlineConfiguration onlineConfiguration)
{
onlineReadAccessPassword readAccess = onlineConfiguration as OnlineReadAccessPassword;
if (readAccess != null)
{
string passWD = "passWD";
var password = new SecureString();
foreach (var c in passWD) password.AppendChar(c);
readAccess.SetPassword(password);
return;
}
throw new NotSupportedException(); // Exception thrown in the delagate will cancel get
fingerprints
}
FingerprintDataResult
GetFingerprintData 动作返回的 FingerprintDataResult 可提供为设备定义的所有特征码。
例如,用户可以使用以下代码检查特征码项:
{
...
FingerprintDataResult result = dataProvider.GetFingerprintData(fingerprintAddress,
preConfigurationDelegate);
FingerprintDataItemComposition allFingerprints = result.FingerprintDataItems;
foreach (FingerprintDataItem item in allFingerprints)
{
string fingerprintDataIdentifier = item.FingerprintDataIdentifier;
string fingerprintDataValue = plcItem.FingerprintDataValue;
// Do something, e.g. store Identifier and Value in a file
}
}
Openness 特征码内的错误处理
Openness 特征码内的所有错误将映射为可恢复的用户异常
EngineeringTargetInvocationException。前提条件是客户端处理该异常。如以下代码所示
TiaPortal currentTIA = ...;
FingerprintDataProvider dataProviderFingerprints =
currentTIA.GetService();
onlineConfigurationDelegate configurationDelegate = OnlineConfigurationFingerprintData;
try
{
// The used addr referes a PLC300.
FingerprintDataResult dataResult = dataProviderFingerprints.GetFingerprintData(addrObj,
configurationDelegate);
// Try to get a list of all FingerprintDataItems. But a PLC300 supports no fingerprints.
FingerprintDataItemComposition dataItems = dataResult.FingerprintDataItems;
foreach (FingerprintDataItem searchItem in dataItems)
{
string valueToCompareIdent = searchItem.FingerprintDataIdentifier;
string valueToComparevalue = searchItem.FingerprintDataValue;
DoAnything(valueToCompareIdent, valueToComparevalue);
}
}
catch (EngineeringTargetInvocationException targetException)
{
// In case of the not supported PLC this exception will be catched.
Console.WriteLine(targetException.Message);
}
帮助程序类别
对于此示例而言,需要两种类别。用户可以使用以下程序代码封装特征码数据对。
////// Helperclass to handle a "Dictionary" as serializeable class object
///[Serializable]
public class FingerprintDataPairs : Dictionary, ISerializable
{
public FingerprintDataPairs(){}
public FingerprintDataPairs(SerializationInfo si, StreamingContext context)
{
KeyValuePair[] dataPair = si.GetValue("KeyValuePairs",
typeof(KeyValuePair[])) as KeyValuePair[];
if (dataPair != null)
foreach (KeyValuePairpair in dataPair) 借助已保存的 FingerprintDataItems 和当前 FingerprintDataResult,可实现特征码比较
...
string pathDat = "FingerprintDataOverview.dat";
FingerprintDataCompare fingerprintDataSet = new FingerprintDataCompare();
foreach (FingerprintDataItem item in fingerprintDataResult.FingerprintDataItems)
fingerprintDataSet.FingerprintDataPairSet.Add(item.FingerprintDataIdentifier,
item.FingerprintDataValue);
FingerprintDataPairs loadDataSet = new FingerprintDataPairs();
loadDataSet = fingerprintDataSet.LoadFingerprintDataItems(pathDat);
if (!fingerprintDataSet.CompareDataSets(loadDataSet,
fingerprintDataSet.FingerprintDataPairSet))
{
// Here is place to implement user actions.
}
5.11.2.8 访问 Step7 上的交叉引用服务
要求
• TIA Portal Openness 应用程序已连接到 TIA Portal。
请参见“连接到 TIA Portal (页 82)”
• 已打开一个项目。
请参见“打开项目 (页 122)”
•
应用
可在 Step7 对象上使用 TIA Portal Openness 通过 GetService 方法访问
CrossReferenceService。交叉引用在适用的 Step7 对象上提供 IEngineeringService,即
CrossReferenceService。对于试图通过 GetService 方法访问 CrossReferenceService 的不适
用 Step7 对象,从 TIA Portal Openness 返回空值。
提供交叉引用 Openness 支持的 Step7