71 lines
2.4 KiB
Python
71 lines
2.4 KiB
Python
"""
|
|
Test script to verify SIMATIC SD compatibility detection
|
|
"""
|
|
|
|
import os
|
|
import sys
|
|
|
|
# --- TIA Scripting Import Handling ---
|
|
if os.getenv("TIA_SCRIPTING"):
|
|
sys.path.append(os.getenv("TIA_SCRIPTING"))
|
|
|
|
try:
|
|
import siemens_tia_scripting as ts
|
|
|
|
print("✓ TIA Scripting import successful")
|
|
print(
|
|
f"Available programming languages: {[lang for lang in dir(ts.Enums.ProgrammingLanguage) if not lang.startswith('_')]}"
|
|
)
|
|
print(
|
|
f"Available export formats: {[fmt for fmt in dir(ts.Enums.ExportFormats) if not fmt.startswith('_')]}"
|
|
)
|
|
print(
|
|
f"Available block types: {[bt for bt in dir(ts.Enums.BlockType) if not bt.startswith('_')]}"
|
|
)
|
|
|
|
# Check if SIMATIC SD is available
|
|
try:
|
|
simatic_sd_format = ts.Enums.ExportFormats.SimaticSD
|
|
print(f"✓ SIMATIC SD format available: {simatic_sd_format}")
|
|
except AttributeError:
|
|
print("✗ SIMATIC SD format NOT available in this TIA Scripting version")
|
|
|
|
except ImportError as e:
|
|
print(f"✗ Failed to import TIA Scripting: {e}")
|
|
print(
|
|
"This is expected if TIA Portal is not installed or TIA_SCRIPTING env var not set"
|
|
)
|
|
|
|
|
|
def analyze_simatic_sd_requirements():
|
|
"""Analyze and display SIMATIC SD requirements"""
|
|
print("\n=== SIMATIC SD FORMAT REQUIREMENTS ===")
|
|
print("Based on official Siemens documentation:")
|
|
print()
|
|
print("✓ SUPPORTED:")
|
|
print(" • Programming Language: LAD (Ladder) ONLY")
|
|
print(
|
|
" • Block Types: FB (Function Block), FC (Function), OB (Organization Block)"
|
|
)
|
|
print(" • TIA Portal Version: V20 or later")
|
|
print(" • Target PLCs: S7-1200, S7-1500")
|
|
print()
|
|
print("✗ NOT SUPPORTED:")
|
|
print(" • SCL (Structured Control Language)")
|
|
print(" • STL (Statement List)")
|
|
print(" • FBD (Function Block Diagram)")
|
|
print(" • Graph programming")
|
|
print(" • CFC (Continuous Function Chart)")
|
|
print(" • Complex LAD elements (some advanced functions)")
|
|
print()
|
|
print("📋 COMMON CAUSES FOR XML-ONLY EXPORT:")
|
|
print(" 1. Block programmed in SCL/STL/FBD instead of LAD")
|
|
print(" 2. Block contains unsupported LAD elements")
|
|
print(" 3. Block is not compiled/consistent")
|
|
print(" 4. TIA Portal version < V20")
|
|
print(" 5. Wrong block type (not FB/FC/OB)")
|
|
|
|
|
|
if __name__ == "__main__":
|
|
analyze_simatic_sd_requirements()
|