wanshenmean
2026-03-13 58376d519aeb76ef78d38b737c0c57f8d982fb52
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
@page
@model CreateModel
@{
    ViewData["Title"] = "创建实例";
}
 
<div class="row justify-content-center">
    <div class="col-lg-8">
        <div class="card shadow">
            <div class="card-header bg-primary text-white">
                <h4 class="mb-0">
                    <i class="bi bi-plus-circle me-2"></i>创建新实例
                </h4>
            </div>
            <div class="card-body">
                <form method="post" id="createForm">
                    <div asp-validation-summary="ModelOnly" class="alert alert-danger" role="alert"></div>
 
                    <!-- 基本信息 -->
                    <h5 class="mb-3">
                        <i class="bi bi-info-circle me-2"></i>基本信息
                    </h5>
 
                    <div class="row mb-3">
                        <div class="col-md-6">
                            <label asp-for="Input.Id" class="form-label required">实例ID</label>
                            <input asp-for="Input.Id" class="form-control" placeholder="例如: plc-simulator-1" />
                            <span asp-validation-for="Input.Id" class="text-danger"></span>
                            <small class="text-muted">唯一标识符,只能包含字母、数字、下划线和连字符</small>
                        </div>
                        <div class="col-md-6">
                            <label asp-for="Input.Name" class="form-label required">实例名称</label>
                            <input asp-for="Input.Name" class="form-control" placeholder="例如: 1号PLC仿真器" />
                            <span asp-validation-for="Input.Name" class="text-danger"></span>
                        </div>
                    </div>
 
                    <div class="row mb-3">
                        <div class="col-md-6">
                            <label asp-for="Input.PLCType" class="form-label required">PLC型号</label>
                            <select asp-for="Input.PLCType" class="form-select">
                                <option value="0">S7-200 Smart</option>
                                <option value="1" selected>S7-1200</option>
                                <option value="2">S7-1500</option>
                                <option value="3">S7-300</option>
                                <option value="4">S7-400</option>
                            </select>
                            <span asp-validation-for="Input.PLCType" class="text-danger"></span>
                        </div>
                        <div class="col-md-6">
                            <label asp-for="Input.Port" class="form-label required">监听端口</label>
                            <input asp-for="Input.Port" class="form-control" type="number" min="1" max="65535" placeholder="102" />
                            <span asp-validation-for="Input.Port" class="text-danger"></span>
                            <small class="text-muted">S7默认端口为102</small>
                        </div>
                    </div>
 
                    <div class="row mb-3">
                        <div class="col-md-6">
                            <label asp-for="Input.ActivationKey" class="form-label">HSL激活码</label>
                            <input asp-for="Input.ActivationKey" class="form-control" placeholder="可选" />
                            <span asp-validation-for="Input.ActivationKey" class="text-danger"></span>
                            <small class="text-muted">用于HSL库的商业激活,留空使用免费版</small>
                        </div>
                        <div class="col-md-6">
                            <label asp-for="Input.AutoStart" class="form-label">自动启动</label>
                            <div class="form-check mt-2">
                                <input asp-for="Input.AutoStart" class="form-check-input" />
                                <label asp-for="Input.AutoStart" class="form-check-label">
                                    服务器启动时自动启动此实例
                                </label>
                            </div>
                        </div>
                    </div>
 
                    <hr class="my-4">
 
                    <!-- 内存配置 -->
                    <div class="d-flex justify-content-between align-items-center mb-3">
                        <h5 class="mb-0">
                            <i class="bi bi-memory me-2"></i>内存配置
                        </h5>
                        <button type="button" class="btn btn-outline-secondary btn-sm" onclick="resetMemoryConfig()">
                            <i class="bi bi-arrow-counterclockwise me-1"></i>重置为默认值
                        </button>
                    </div>
 
                    <div class="row mb-3">
                        <div class="col-md-4">
                            <label asp-for="Input.MRegionSize" class="form-label">M区域大小</label>
                            <input asp-for="Input.MRegionSize" class="form-control" type="number" min="0" placeholder="1024" />
                            <span asp-validation-for="Input.MRegionSize" class="text-danger"></span>
                        </div>
                        <div class="col-md-4">
                            <label asp-for="Input.IRegionSize" class="form-label">I区域大小</label>
                            <input asp-for="Input.IRegionSize" class="form-control" type="number" min="0" placeholder="256" />
                            <span asp-validation-for="Input.IRegionSize" class="text-danger"></span>
                        </div>
                        <div class="col-md-4">
                            <label asp-for="Input.QRegionSize" class="form-label">Q区域大小</label>
                            <input asp-for="Input.QRegionSize" class="form-control" type="number" min="0" placeholder="256" />
                            <span asp-validation-for="Input.QRegionSize" class="text-danger"></span>
                        </div>
                    </div>
 
                    <div class="row mb-3">
                        <div class="col-md-4">
                            <label asp-for="Input.DBBlockCount" class="form-label">DB块数量</label>
                            <input asp-for="Input.DBBlockCount" class="form-control" type="number" min="0" placeholder="100" />
                            <span asp-validation-for="Input.DBBlockCount" class="text-danger"></span>
                        </div>
                        <div class="col-md-4">
                            <label asp-for="Input.DBBlockSize" class="form-label">DB块大小</label>
                            <input asp-for="Input.DBBlockSize" class="form-control" type="number" min="0" placeholder="1024" />
                            <span asp-validation-for="Input.DBBlockSize" class="text-danger"></span>
                        </div>
                        <div class="col-md-2">
                            <label asp-for="Input.TRegionCount" class="form-label">定时器数量</label>
                            <input asp-for="Input.TRegionCount" class="form-control" type="number" min="0" placeholder="64" />
                            <span asp-validation-for="Input.TRegionCount" class="text-danger"></span>
                        </div>
                        <div class="col-md-2">
                            <label asp-for="Input.CRegionCount" class="form-label">计数器数量</label>
                            <input asp-for="Input.CRegionCount" class="form-control" type="number" min="0" placeholder="64" />
                            <span asp-validation-for="Input.CRegionCount" class="text-danger"></span>
                        </div>
                    </div>
 
                    <hr class="my-4">
 
                    <!-- 提交按钮 -->
                    <div class="d-flex justify-content-between">
                        <a asp-page="/Index" class="btn btn-secondary">
                            <i class="bi bi-x-lg me-1"></i>取消
                        </a>
                        <button type="submit" class="btn btn-primary">
                            <i class="bi bi-check-lg me-1"></i>创建实例
                        </button>
                    </div>
                </form>
            </div>
        </div>
    </div>
</div>
 
@section Scripts {
    @{await Html.RenderPartialAsync("_ValidationScriptsPartial");}
 
<script>
    function resetMemoryConfig() {
        document.querySelector('#Input_MRegionSize').value = '1024';
        document.querySelector('#Input_IRegionSize').value = '256';
        document.querySelector('#Input_QRegionSize').value = '256';
        document.querySelector('#Input_DBBlockCount').value = '100';
        document.querySelector('#Input_DBBlockSize').value = '1024';
        document.querySelector('#Input_TRegionCount').value = '64';
        document.querySelector('#Input_CRegionCount').value = '64';
    }
</script>
}